16-Jan-80 03:35:45-EST,474;000000000000
Mail from SU-SCORE rcvd at 16-Jan-80 0335-EST
Date: 15 Jan 1980 2223-PST
From: Mark Crispin <Admin.MRC at SU-SCORE>
Subject: FTPSER bug
To: [SU-SCORE]<Admin.MRC>Tops-20.DIS.24: ;

The following bug exists in release 3 and release 4 FTPSER.  Credit goes
to MIT for discovering the bug.  In the ABORPC routine, there are three
HRROI B,string instructions for various messages.  They should be
HRROI X,string instead.  The HRROI A,[ASCIZ /456 /] is correct.
-------
22-Jan-80 18:34:56-EST,878;000000000000
Mail from SU-SCORE rcvd at 22-Jan-80 1834-EST
Date: 22 Jan 1980 1528-PST
From: Mark Crispin <Admin.MRC at SU-SCORE>
Subject: IMP reinitialization bug
To: [SU-SCORE]<Admin.MRC>Tops-20.DIS.24: ;

Problem: After an IMP failure, the network does not initialize
properly.  Things look as if the IMP thinks we are talking short
leaders.  Things are wedged until the network is cycled.

Diagnosis: In IMIERR, there is a MOVNM T1,NOPCNT which should be
a MOVEM T1,NOPCNT since the NOP output routine takes a positive
value in NOPCNT to mean it should output the NOPs.

Solution: Make the change.  IMIERR is in IMPANX.MAC.  This fix is
valid in release 3 and release 4.

I have not verified that this will actually remedy the problem,
but since the Stanford IMP crashes on a daily basis I'll know
soon enough.  The MOVNM in IMIERR is almost certainly a bug.
-------
22-Jan-80 22:14:37-EST,519;000000000000
Mail from SU-SCORE rcvd at 22-Jan-80 2214-EST
Date: 22 Jan 1980 1759-PST
From: Mark Crispin <Admin.MRC at SU-SCORE>
Subject: previous message irt IMIERR
To: [SU-SCORE]<Admin.MRC>Tops-20.DIS.24: ;

The bug fix in the previous message was incomplete and skewed with the
DEC sources.  The proper fix is to replace the MOVNM T1,NOPCNT with
	MOVEI T1,3
	MOVEM T1,NOPCNT

The bug in the standard DEC sources was that an insufficient number of
NOPs were sent, and not that NOPCNT was set up incorrectly.
-------
22-Jan-80 22:18:55-EST,988;000000000000
Mail from SU-SCORE rcvd at 22-Jan-80 2218-EST
Mail-from: ARPANET site UTAH-20 rcvd at 22-Jan-80 1824-PST
Date: 22 Jan 1980 1655-MST
From: Randy Frank <FRANK at UTAH-20>
Subject: Bug in ACTGEN for Class Scheduling by Accounts
To: ADMIN.MRC at SU-SCORE
Remailed-date: 22 Jan 1980 1913-PST
Remailed-from: Mark Crispin <Admin.MRC at SU-SCORE>
Remailed-to: [SU-SCORE]<Admin.MRC>Tops-20.DIS.24: ;

Under R4 if you want to do class scheduling by accounts instead of by
Access control, there is a critical bug fix to ACTGEN.  Class
scheduling by accounts won't work without it.

In routine .CLASS, after reading in the desired class number with
NIN, T2 is manipulated to check for valid class, but is not saved.
T2 is then returned with garbage instead of the desired class.

Fix:
  After the RETBAD following the NIN save T2  (MOVEM T2,T4)
  then before the AOJA T2,RSKP (last line of routine) restore
  T2 with MOVE T2,T4

Plz forward this fix to mailing list.
-------
24-Jan-80 05:06:28-EST,700;000000000000
Mail from SU-SCORE rcvd at 24-Jan-80 0506-EST
Date: 24 Jan 1980 0204-PST
From: Mark Crispin <Admin.MRC at SU-SCORE>
Subject: Bug fix to release 4 SYSDPY
To: [SU-SCORE]<Admin.MRC>Tops-20.DIS.24: ;

Problem:	The AN command in SYSDPY omits some hosts

Diagnosis:	DPYARP is using the number of existing hosts rather than
		the size of the hash table as the AOBJN counter to paw
		over host indices.  It really has to look through the whole
		hash table

Solution:	At DPYARP+3, replace MOVEM T2,APANUM with MOVEM T3,APANUM

Note:  I have enhanced the AN display for SYSDPY in a number of ways, including
another bug fix relating to lost output.  Contact me for more information.
-------
27-Jan-80 23:06:39-EST,596;000000000001
Mail from SU-SCORE rcvd at 27-Jan-80 2306-EST
Date: 27 Jan 1980 2004-PST
From: Mark Crispin <Admin.MRC at SU-SCORE>
Subject: more on IMIERR
To: [SU-SCORE]<Admin.MRC>Tops-20.DIS.25: ;

I have modified IMIERR to do an AOS IMPDRQ before the JRST PA1 at the end
of the routine.  It appears that this exorcises the problem of the NCP
getting wedged when the IMP crashes - basically, it cycles the network.
If you've ever had the problem that the network gets into a losing state
after an IMINX2 bug check, you should probably make this modification.
The routine is in IMPANX.MAC.
-------
 1-Feb-80 13:05:11-EST,894;000000000000
Mail from SU-SCORE rcvd at 1-Feb-80 1304-EST
Date:  1 Feb 1980 0959-PST
From: Mark Crispin <Admin.MRC at SU-SCORE>
Subject: list of bug fixes for 4th field test release 4
To: [SU-SCORE]<Admin.MRC>Tops-20.DIS.28: ;

I have compiled a list of bug fixes for the fourth field test of
release 4.  They are on two files:

	<ADMIN.MRC>EXEC-BUGS.TXT
	<ADMIN.MRC>MONITOR-BUGS.TXT

All of these changes are changes which I would recommend to
DIGITAL for installation.  A few of them are in the "feature
addition" category, but the bulk of them are bug fixes.  I have
not included the numerous "matter of taste" changes made at
Stanford (this category includes useful and desirable things like
backspace-rubout and lazy login), since I felt that I was more
interested in compiling a list of things that should get done
before release 4 is shipped to the masses.

-- Mark --
-------
 3-Feb-80 22:49:25-EST,2025;000000000000
Mail from SU-SCORE rcvd at 3-Feb-80 2249-EST
Date:  3 Feb 1980 1947-PST
From: Mark Crispin <Admin.MRC at SU-SCORE>
Subject: Bug fix/kludge for hung jobs using section mapping/sharing
To: [SU-SCORE]<Admin.MRC>Tops-20.DIS.28: ;

	This patch is applicable to the fourth field test of
release 4, version 4(3230).  It is probably not valid on any
earlier versions.

Problem:
	Inferior forks hung in KSEF3, keeping top level fork from
logging out.

Diagnosis:
	One way this happens is if the user runs TV in extended
addressing mode.  TV runs in big addresses (unfortunately not to
advantage yet) if you enable it and fix a couple of minor bugs on
the way.  What it does is map section 0 into a private section 3
then goes there.
	When the fork is reset, it does an SMAP% to get rid of
the private section.  SECMAP notices that the section has a share
count greater than 1 and returns SMAPX1.
	However, it can't get rid of the other side either, so we
have a deadlock.

Solution:
	Break the deadlock by decrementing the share count in
SECMAP regardless of whether or not somebody else has it mapped.
At SECMAP+15 or so, replace:
	RETBAD (SMAPX1,<OKSKED
		CALL RELCPT>)	;YES, CAN'T DELETE
with:
	RETBAD (SMAPX1,<OKSKED
		LOAD T1,SPTX,T2	;DECREMENT THE SHARE COUNT THOUGH
		CALL DWNSHR
		CALL RELCPT>)	;YES, CAN'T DELETE

	Note: this is sort of a kludge.  The right thing would be
for it to noticed that it was mapped to another section in the
same fork, and break the share counts on both ends.  Then SECMAP
can flush the section the first time KSELF tries instead of the
current delay.
	Also I suspect that with the right kind of funny section
mapping you could get the system to SHROFD you.  This has not
happened to me yet, although SMAP% hasn't been used extensively
yet here.  I DON'T think you could get SHROFD'd with this fix if
you use SMAP% in the ways which DEC has suggested it should be
used.  I would be interested to hear DEC's comments on this.

-- Mark --
-------
 4-Feb-80 21:49:34-EST,1335;000000000000
Mail from SU-SCORE rcvd at 4-Feb-80 2149-EST
Mail-from: ARPANET site UTAH-20 rcvd at 4-Feb-80 1838-PST
Date:  4 Feb 1980 1826-MST
From: Randy Frank <FRANK at UTAH-20>
Subject: bug in dumper archiving feature
To: admin.mrc at SU-SCORE, c-griss at UTAH-20
cc: frank at UTAH-20
Remailed-date:  4 Feb 1980 1840-PST
Remailed-from: Mark Crispin <Admin.MRC at SU-SCORE>
Remailed-to: [SU-SCORE]<Admin.MRC>Tops-20.DIS.28: ;

THIS BUG FIX HAS NOT BEEN CHECKED OUT YET, AS IT IS NOT EASY TO CHECK OUT.
I WILL CHECK IT OUT DURING OUR NEXT ARCHIVE RUN (THIS WEEKEND) AND CONFIRM
ITS CORRECTNESS.  HOWEVER, IT IS FAIRLY IMPORTANT IF YOU RUN THE ARCHIVING
SYSTEM.

If a user requests a file archive (voluntary) with disk contents retained,
the archiving system leaves the archive status in the fdb in a funny
state during the cleanup pass of the archiving run.

Diagnosis:
  in DUMPER.MAC at ARFXB1 - (apx) 4 dumper executes code to delele
  the disk contents in the normal case.  This code is skipped when
  the user requests that the contents remain on-line.  Unfortunately,
  this code also picks up the jfn for the file; the code after arfxb1
  assumes that the correct jfn is in reg. a.

Fix:
  At arfxb1 get the jfn for the file  (HRRZ A,P2JFN) so that the ARCF
  jsys following has the correct jfn in a.
-------
 7-Feb-80 15:26:14-EST,835;000000000000
Mail from SU-SCORE rcvd at 7-Feb-80 1526-EST
Date:  7 Feb 1980 1224-PST
From: Mark Crispin <Admin.MRC at SU-SCORE>
To: [SU-SCORE]<Admin.MRC>Tops-20.DIS.28: ;

This fix is a critical fix for release 4:

Problem:
	IMPNII, ILLUUO, other strange bug halts.  Analysis of the
crash shows that the SOSL IMPNFI at IMISRT+2 has been smashed to
randomness.

Diagnosis:
	Somebody changed IMIN3 to "use [the] stack as [a] bit
bucket" instead of reusing the buffer when an over-sized message
came in.  Whomever did it did not realize that PIMSTK was a stack
pointer and not the stack.  In my system, the expression that it
evaluated to came out to be...IMISRT+2

Solution:
	At IMIN3+3, change:
	DATAO ANI,[1B12+PIMSTK+NIMSTK-1] ;Use stack as bit bucket
to:
	DATAO ANI,[1B12+IMSTK+NIMSTK-1] ;Use stack as bit bucket
-------
16-Feb-80 19:20:56-EST,1033;000000000000
Mail from SU-SCORE rcvd at 16-Feb-80 1920-EST
Date: 16 Feb 1980 1614-PST
From: Mark Crispin <Admin.MRC at SU-SCORE>
Subject: scheduler requeue queue size bug fix
To: [SU-SCORE]<Admin.MRC>Tops-20.DIS.28: ;

Problem:
	Less than half of the SCDRQ queue is actually used.  Besides
wasting resident variable space, it makes the scheduler queue more
likely to overflow.

Diagnosis:
	NSCDRQ is multiply-defined.  It is globally defined in STG
as 41 (33 decimal), and locally defined in SCHED as 20 (16 decimal).
Evidentally the SCDRQB table used to live in SCHED before STG existed
and somebody forgot to delete the NSCDRQ definition when moving SCDRQB
to STG - sometime later the table size got increased but it never
really happened.

Solution:
	In SCHED.MAC, delete the definition of NSCDRQ.  While you're
at it, you might as well delete the definition of SCTLW since it is
also defined in STG.  It's probably a good idea to take care of SHLTW
as well, although I didn't feel like editing STG and GLOBS.
-------
17-Feb-80 17:53:34-EST,1529;000000000000
Mail from SU-SCORE rcvd at 17-Feb-80 1753-EST
Mail-from: ARPANET site UTAH-20 rcvd at 15-Feb-80 1654-PST
Date: 15 Feb 1980 1318-MST
From: Randy Frank <FRANK at UTAH-20>
Subject: Bug "circumvention" to fillfw problem
To: admin.mrc at SU-SCORE, dacruz at UTAH-20, kincl at UTAH-20
Remailed-date: 17 Feb 1980 1451-PST
Remailed-from: Mark Crispin <Admin.MRC at SU-SCORE>
Remailed-to: [SU-SCORE]<Admin.MRC>Tops-20.DIS.28: ;

From Arnie Miller (via Dave Braithwaite) comes the following bug
"circumvention" for the fillfw problem.  What this does is to automatically
do the clzff5+13 patch that we've been doing manually under the
appropriate circumstances.  I've had it in for a day now with no hung jobs
and no noticeable side effect.  As there probably won't be a true bug fix
for the problem until release 4.1, this will have to do.  From DEC's point
of view, the problem only seems to be bad at sites running the mfexec and
using ephemeral programs.  My own experience confirms this; when I de-
ephemeralized several commonly used programs, the incidence of hung jobs
went down by an order of magnitude.

The "fix: is in jsysf at about clzff5 +22 (??) after the JRST CLZFF7 and
before the CALL UNLCKF

	JRST CLZFF7	;NO, DON'T CLOSE
IFN UTAHSW,<
	SKIPN FORKN	;SEE IF FORK STILL EXISTS
	JRST [CALL CKMMOD	;MONITOR CONTEXT
	      JRST .+1		;NO SO DON'T DO THE FOLLOWING
	      HRRZS FILLFW(JFN)	;CLEAR PAGE COUNT
	      JRST  CLZFM1 ]	;AND PROCEED
>;IFN UTAHSW
	CALL UNLCKF	;YES, UNLOCK JFN
-------
25-Feb-80 01:22:22-EST,858;000000000000
Mail from SU-SCORE rcvd at 25-Feb-80 0122-EST
Date: 24 Feb 1980 2021-PST
From: Mark Crispin <Admin.MRC at SU-SCORE>
Subject: FTSCTL JFN loser bug
To: [SU-SCORE]<Admin.MRC>Tops-20.DIS.28: ;

Problem:
	FTSCTL forgets about JFNs at times.  This can be
disasterous if it is running under SYSJOB.

Diagnosis:
	The REJECT code is too clever for its own good.  It tries
so hard to not do any unnecessary work that it fails to do
necessary work.  In particular, if it fails to get a JFN for one
side it doesn't even try to get rid of the JFN for the other
side, etc.

Solution:
	Make it stupider.  Make REJEC1, REJEC2, and REJEC4 all
point to REJECT.  At REJECT+6, delete the JRST REGO and the
REJEC1 label.  At the end of the formerly REJEC1 routine, replace
the JRST REJECT with JRST REGO and delete the REJEC2 and REJEC4
routines.
-------
27-Feb-80 05:44:22-EST,1537;000000000000
Mail from SU-SCORE rcvd at 27-Feb-80 0544-EST
Date: 27 Feb 1980 0111-PST
From: Mark Crispin <Admin.MRC at SU-SCORE>
Subject: more on EXEC ALERT feature
To: [SU-SCORE]<Admin.MRC>Tops-20.DIS.29: ;

[Note: This supercedes my earlier message tonight about EXEC's
 ALERT feature.  Install this edit instead of the previous one,
 because it turns out that mail watching does use recursive %.
 Sorry 'bout that.
 By the way, ALERTs and hence the bug only happen with the multi-
 forking EXEC.  -- Mark]

Problem:
	User specifies %<randomness> in a string for an alert and
gets illegal instruction traps with I ALERT and endlessly when
the alert happens.

Diagnosis:
	ALERT text printing uses %\ which allows recursive %ing.
Code just blows up when the % code is invalid, and users
shouldn't be allowed to get at this anyway.

Solution:
	Rewrite the alert text printout code to not use %\.  In
EXECIN.MAC, at .ALRST+5, replace:
	SKIPE B,REASON		; USER MESSAGE
	 TYPE < - >
	ETYPE <%2\%%_>
with:
	SKIPN B,REASON		; USER MESSAGE
	 JRST ALRST1
	TYPE < - >
	UTYPE (B)
ALRST1:	ETYPE <%_>
and at ALRST2+6, replace:
	SKIPE B,REASON+1(D)	; MESSAGE TABLE
	 TYPE < - >
	ETYPE <%2\%%_>
with:
	SKIPN B,REASON+D(D)	; USER MESSAGE
	 JRST ALRST5
	TYPE < - >
	UTYPE (B)
ALRST5:	ETYPE <%_>

In EXECSE.MAC, at ALRCHK+17, replace:
	SKIPE B,REASON		; GIVE MESSAGE SAVED
	 TYPE < - >
	ETYPE <%2\]%_>
with:
	SKIPN B,REASON		; GIVE MESSAGE SAVED
	 JRST ALRCH0
	TYPE < - >
	UTYPE (B)
ALRCH0:	ETYPE <]%_>
-------
27-Feb-80 05:50:13-EST,745;000000000000
Mail from SU-SCORE rcvd at 27-Feb-80 0550-EST
Date: 26 Feb 1980 2353-PST
From: Mark Crispin <Admin.MRC at SU-SCORE>
Subject: EXEC ALERT bug
To: [SU-SCORE]<Admin.MRC>Tops-20.DIS.29: ;

Problem:
	Illegal instruction trap and possible endless looping if
user sets an alert with a "%" embedded in it

Diagnosis:
	The %\ typeout routine calls UETYPE recursively, which in
turn can process % commands in strings.  The code was never
written to handle the case of an illegal % command from a %\
string.

Solution:
	Make %\ use UTYPE instead, since nothing needs this
functionality and it is a bug in the case of the ALERT feature.
At %STRNG+6, replace:
	HRLI C,(<UETYPE>)	; FORM LUUO
with:
	HRLI C,(<UTYPE>)	; FORM LUUO
-------
27-Feb-80 06:40:55-EST,778;000000000000
Mail from SU-SCORE rcvd at 27-Feb-80 0640-EST
Date: 27 Feb 1980 0338-PST
From: Mark Crispin <Admin.MRC at SU-SCORE>
Subject: more with capabilities passed to processes
To: [SU-SCORE]<Admin.MRC>Tops-20.DIS.29: ;

This change is to EXECP.MAC.  I recommend it to anybody who has
installed the earlier change to not pass capabilities down for
non-ephemeral programs.

Problem:
	Ephemeral programs run by a privileged user run
privileged, even though user has disabled his/her capabilities.
This is not desirable for security reasons.

Diagnosis:
	Coded that way.

Solution:
	At REPH1+15 or so, between the MOVE A,EFORK and the
EPCAP, insert:
	SKIPE C,PRVENF		; IF ENABLED, ALL CAPABILITIES
	 SKIPA C,B
	  TRZ B,-1		; NOT ENABLED, DISALLOW ALL EPCAP
-------
27-Feb-80 07:03:37-EST,778;000000000000
Mail from SU-SCORE rcvd at 27-Feb-80 0703-EST
Date: 27 Feb 1980 0402-PST
From: Mark Crispin <Admin.MRC at SU-SCORE>
Subject: more with capabilities passed to processes
To: [SU-SCORE]<Admin.MRC>Tops-20.DIS.29: ;

This change is to EXECP.MAC.  I recommend it to anybody who has
installed the earlier change to not pass capabilities down for
non-ephemeral programs.

Problem:
	Ephemeral programs run by a privileged user run
privileged, even though user has disabled his/her capabilities.
This is not desirable for security reasons.

Diagnosis:
	Coded that way.

Solution:
	At REPH1+15 or so, between the MOVE A,EFORK and the
EPCAP, insert:
	SKIPE C,PRVENF		; IF ENABLED, ALL CAPABILITIES
	 SKIPA C,B
	  TRZ B,-1		; NOT ENABLED, DISALLOW ALL EPCAP
-------
 1-Mar-80 18:35:17-EST,2826;000000000000
Mail from SU-SCORE rcvd at 1-Mar-80 1834-EST
Date:  1 Mar 1980 1532-PST
From: Admin.JQJ at SU-SCORE (J. Q. Johnson)
Subject: [FRANK at UTAH-20 (Randy Frank): Terminal type names and numbers]
To: frank at UTAH-20
cc: [SU-SCORE]<Admin.MRC>Tops-20.DIS.29:

	Has anything ever come of this?  When we discussed this last spring we
got as far as a tentative list of MONSYM symbols, but didn' generate any
concensus.  I'm playing around with various long-term ideas fo terminal
support (e.g. a Unix-style termtyp file, and/or a program that assists the
user to determine his/her terminal type).  I need to know what standardization
activities are currently in progress, and what people think they need.
	The key question as I see it is "how many different types are there?"
This would determine whether we can think of terminal types as small integer
numbers or not.  For example, is a VT132 different from a VT100?  Is a DM2500
different from a DM3025 which simulates the 2500 except for handling of CRLF?
Is a home microcomputer that totally simulates a Teleray 1061 except for
padding requirements a different tty type?  Is the modified-rom Teleray at
Utah different enough from the standard one to rate a separate type?  How
about DMs with modified keyboards?
	My current feeling is that our short-run best bet is to try to
standardize on the names for 20 or 30 common terminal types, but in the long
run to flush the notion of "terminal type" altogether in favor of a Unix-style
approach.  I can imagine a replacement to the STTYP jsys which accepted a
string of keywords and values documenting the characteristics of a particular
terminal, or a number which indexed into a "standard characteristics" table.
	Comments?
                ---------------
Mail from UTAH-20 rcvd at 29-Apr-79 1934-PDT
Date: 29 Apr 1979 2027-MDT
From: FRANK at UTAH-20 (Randy Frank)
Subject: Terminal type names and numbers
To: crossland at UTAH-20, heathman at SRI-KL, admin.mrc at SU-SCORE,
To: admin.jqj at SU-SCORE

Has anybody considered (or attempted) to standardize terminal type names
and/or numbers for non-DEC terminals.  While I admit that standardizing
numbers may not be reasonable in that many may not want to reserve terminal
entries in stg for terminals which a site doesn't have, at least standarding
names would mean that all you would have to do is re-assemble with the
local monsym.  If people think that standardizing names and/or numbers
is a good idea, I would be willing to maintain a "standard names list".  Once
we have an initial list we should probably submit it to DECUS for consideration
by non-net sites.  The standard name should include both a monsym name and
an Exec name, e.g., for the Teleray-1061 our monsym name is .tttel and our
exec name is Teleray-1061.
-------
 5-Mar-80 07:33:49-EST,1559;000000000000
Mail from SU-SCORE rcvd at 5-Mar-80 0733-EST
Date:  5 Mar 1980 0432-PST
From: Mark Crispin <Admin.MRC at SU-SCORE>
Subject: higher priority for NCP fork
To: [SU-SCORE]<Admin.MRC>Tops-20.DIS.29: ;

Note:  This change is passed on as a SUGGESTION and not as a bug fix.
You should decide for yourself whether or not you really want to put
it in.  Putting the NCP fork in queue 0 may well turn out to be too
much priority for it; I am experimenting with it like this now and so
far I am obtaining quite satisfactory results.  John Borchek at BBN
has modified BBN's NCP to put most of the NCP fork tasks with the
periodic check or interrupt level.  I feel that Borchek's solution is
better in the long run.

Problem:
	NCP fork does not get run often enough.  This can cause
IMINX2 buginfs and much grief to ARPANET users as network service
continually yo-yos during busy times.

Diagnosis:
	The NCP fork is running at a high priority by virtue of
having been MSFRK'd.  The problem is that it is sharing this
level of priority with other job 0 forks.

Solution:
	Give the NCP fork an extra priority bump, so that it will
only run in queue 0.  The right half of the priority word
contains two six bit fields.  Bits 24:29 are the highest priority
queue the fork can run in, and 30:35 are the lowest priority
queue +1.  If both of these bytes are zero, there isn't any
special priority.  At IMPBP0+2, after the MCENTR:
	MOVEI T1,.FHSLF		;GIVE THE NCP FORK SOME PRIORITY
	MOVEI T2,1		;ONLY ALLOW QUEUE 0
	SPRIW%
	 ERJMP .+1
-------
 5-Mar-80 08:11:00-EST,2332;000000000000
Mail from SU-SCORE rcvd at 5-Mar-80 0810-EST
Date:  5 Mar 1980 0506-PST
From: Mark Crispin <Admin.MRC at SU-SCORE>
Subject: STKOVF bug halts when the NCP is yo-yoing
To: [SU-SCORE]<Admin.MRC>Tops-20.DIS.29: ;

Problem:
	The ARPANET is yo-yoing.  The system dies with a STKOVF
bug halt.

Diagnosis:
	A user is in the middle of some JSYS which has locked
down the TTY's dynamic data when the network goes down.  NVTDWN
calls NVTDET (in TTNTDV) to detach the user by generating a
carrier off PSI.  Eventually, we get to JOBCOF which calls LDTACH
to actually detach the user, but since the TTY's dynamic data is
locked the TTYDAS call fails and we sit MDISMSing for the dynamic
data to be deallocated.
	Now, the network goes up and down for another cycle while
the job is still hung on that NVT.  Another carrier off PSI is
generated, which again gets us to JOBCOF...  Each time this
happens 10 words or so are eaten off the UPDL until eventually
while doing the TLINK% in LDTACH we run out of UPDL space.

Solution:
	This solution is in two parts, and while it fixes the
problem I'm not satisfied this is the end of the matter.
	Part I: If the dynamic data deassignment in LDTACH fails,
try to win by giving the job a ^C interrupt.  In MEXEC, in the
literal jumped to by LDTACH+16 or so, after the UNLOCK DEVLCK,
insert:
		PUSH P,T1	;SAVE TEST ROUTINE ADDRESS
		MOVE T2,LDTALN	;POSSIBLY DYNAMIC DATA LOCKED BY SOME JSYS,
		MOVEI T3,"C"-100; SO GIVE JOB A ^C INTERRUPT AND HOPE FOR BEST
		CALL TTPSRQ	; DOESN'T HELP IF USER ENABLED FOR ^C THOUGH
		POP P,T1
I'm not sure if this will really back us out of the JSYS (any DEC
people care to comment?), but I doubt it will hurt and just
possibly it will do precisely the right thing.
	Part II: Don't allow repeated carrier off interrupts on
an ARPANET NVT.  In TTNTDV, at NVTDT1+20 or so, after the
JRST NVTDT2 followed by the three lines of comments and before
the MOVE T2,NVTDLN, insert:
	LOAD T1,TTDIP,(T2)	;IS THIS TERMINAL TRYING TO DETACH ALREADY?
	JUMPN T1,NVTDT4		;YES - DON'T DO PSI AGAIN!!!
	SETONE TTDIP,(T2)	;TELL US NEVER TO COME HERE AGAIN
Insert the NVTDT4 label 5 instructions further down, at the CALL
ULKTTY.  In TTYSRV, you then need to define TT%DIP and the TTDIP
structure.  I defined TT%DIP as 1B29 in TTFLG1.
-------
 5-Mar-80 08:24:41-EST,1055;000000000000
Mail from SU-SCORE rcvd at 5-Mar-80 0824-EST
Date:  5 Mar 1980 0518-PST
From: Mark Crispin <Admin.MRC at SU-SCORE>
Subject: getting carrier off PSI when job is detached
To: [SU-SCORE]<Admin.MRC>Tops-20.DIS.29: ;

Problem:
	A job which has enabled for the carrier off interrupt
does not get it until after the job has been reattached.  If an
FTPSER is logged in and the other side breaks the network
connection without completing the BYE protocol, the FTPSER is
hung until the detach timeout expires.

Diagnosis:
	The JOBCOF code freezes all the job's forks, on the
theory that maybe the job really was abandoned, so why let it
chew up CPU time for 5 minutes.

Solution:
	Refrain from freezing the forks if the carrier off PSI is
enabled by some fork in the job.  In MEXEC, at JOBCF1+4 (between
the CALL LDTACH and the CALL FFORKI), insert:
	MOVE T1,BITS+.TICRF	;CHECK IF TOP-LEVEL FORK ENABLED
	TDNN T1,TTSPSI		;...FOR CARRIER OFF INTERRUPT
Incidentally, the MOVE T1,FORKX at JOBCF1+2 is unnecessary and
can be deleted.
-------
 9-Mar-80 22:21:02-EST,717;000000000000
Mail from SU-SCORE rcvd at 9-Mar-80 2220-EST
Date:  9 Mar 1980 1743-PST
From: Mark Crispin <Admin.MRC at SU-SCORE>
Subject: EXEC0 bug in SYSTAT - class scheduler printout
To: [SU-SCORE]<Admin.MRC>Tops-20.DIS.29: ;

Problem:
	Illegal instruction from EXEC while printing out the
class scheduler parameters for a job.

Diagnosis:
	Timing error.  Job has logged out between the time that
the GETJI% was done on it and when the SKED% was done to get the
class scheduler info.

Solution:
	Return all zeros for the information.  At SYSTS3+11,
after the SKED%, insert:
	 ERJMP [SETZM .SAJCL+SYCLB
		SETZM .SAJSH+SYCLB
		SETZM .SAJUS+SYCLB
		JRST .+1]	;FAILED, JOB LOGGED OUT, RETURN ALL ZEROS
-------
14-Mar-80 06:47:00-EST,1373;000000000000
Mail from SU-SCORE rcvd at 14-Mar-80 0646-EST
Date: 14 Mar 1980 0344-PST
From: Mark Crispin <Admin.MRC at SU-SCORE>
Subject: TOPS-20 Tools DECUS Session
To: [SU-SCORE]<Admin.MRC>Tops-20.DIS.30: ;
cc: RMS at MIT-AI, MMcM at MIT-AI, REG at SU-AI

I will be chairing a session entitled "TOPS-20 Tools" at
the 1980 Spring DECUS U.S. Symposium in Chicago.  This
session is scheduled on Friday, April 25 from 9:45 to
11:45 AM in the Rosemont D Room of the Hyatt Regency
O'Hare.

The purpose of this session is essentially to introduce
"neat software not supported by DEC" to the general DECUS
community.  Obvious programs such as MM, EMACS, and
SYSDPY will be covered, but I'm hoping to see other
programs mentioned in this session as well.

I am hoping, given enough interest and organization that
we will be able to make a TOPS-20 Tools tape for the tape
copy facility.  I have been in contact with some people
at DIGITAL who have expressed interest in presenting some
of their own personal tools, hacks, etc. so it should be
an interesting session.

I would like to take this opportunity to invite you to
contribute your favorite tools to this session.  This is
going to be the first DECUS session I have chaired, so
I'm going to need help to get the session to live up to
its full potential.  Hope to see you there.

Regards,
	Mark
-------
16-Mar-80 16:39:55-EST,3008;000000000001
Mail from SU-SCORE rcvd at 16-Mar-80 1639-EST
Date: 16 Mar 1980 1331-PST
From: Mark Crispin <Admin.MRC at SU-SCORE>
Subject: Mr. Bill's DEC-20
To: [SU-SCORE]<Admin.MRC>Tops-20.DIS.30: ;
cc: Helliwell at DEC-2136, MMcM at MIT-AI

Hopefully everybody knows about the "Mr. Bill Show", but in case
you don't, it is one of the weekly parts of NBC's Saturday Night
Live and is a rather black humor takeoff on kids' TV shows.  Mr.
Bill is a clay doll, and Spot is his little dog.  Sluggo is a big
and mean clay doll that does mean things to Mr.  Bill.  Mr. Hands
are a pair of hands which move these characters around and does
most of the narration.  Most of Mr. Bill's parts are various
high-pitched cries of pain as he gets crushed, multilated, and
otherwise made miserable by Sluggo (and Mr. Hands, his "friend").
Anyway, for your amusement, here is Mr. Bill's DEC-20, written in
TOPS-20 Monitor Internals class the day we learned about mapping
directories by yours truly with the help of certain people who
will go nameless (libel laws and all that...):

                        Mr. Bill's DEC-20

                          Mark Crispin

Mr. Hands: Hi kids!  It's time for the Mr. Bill Show!

Mr. Bill: Yay!

H: Say Mr. Bill, I see you've bought a DECSYSTEM-20.

B: Yes, I'm gonna run a service bureau and make a lot of money!

H: Hey Mr. Bill, your DEC Software Specialist Sluggo is here to
	install some patches.

B: Ohh, he's gonna be mean to me!

H: Come now, Mr. Bill.  Your SWS Sluggo is your FRIEND.  First,
	he's going to map your directory.

B: Ohhhhhh!

H: Say Mr. Bill, your SWS Sluggo says your directory has some
	errors in an FDB.  He's going to fix it for you.

20: %DECSYSTEM-20 NOT RUNNING
    *********************
    * BUGHLT 'BADROT'
    *********************

B: Ohhhhhhh!

H: Your SWS says your hardware's bad, since it happened just
	while he was writing out your directory.  Fortunately,
	your DEC Field Service Representative Sluggo just came in
	to do PM.

B: I don't think you're a friend Mr. Hands all you do is let
	Sluggo be mean to me.

H: Your FE says for you to take a CLOSE look at this power supply
	fan.

B: Ohhhhhhhhhhhhhhh!

H: Your FE says your problem is dog hairs.

B: Oh Spot's my friend don't throw him out the window we're on
	the ninth floor...ohhhhhh!  Poor Spot!

H: Now your FE is going to clean your disks.

B: Ohhhhhhhh!

H: He says that your disks had a lot of oxide on them and he had
	to clean it ALL off.  It looks like your system hasn't
	been properly maintained, Mr. Bill.  Your FE Sluggo has
	no choice but to cancel your service contract and junk
	your machine.

B: Ohhhhh!  Let me have my machine back you are all being mean to
	me.

H: Come now, Mr. Bill.  Your DEC salesman Sluggo just came in to
	sell you a VAX to replace your -20.

B: OHHHHHHHHHHHHHHHHHHHHHHH!

H: Well kids, that's all for now.  See ya next week, when Mr.
	Bill goes to DECUS!
-------
16-Mar-80 18:48:59-EST,728;000000000000
Mail from SU-SCORE rcvd at 16-Mar-80 1848-EST
Date: 16 Mar 1980 1545-PST
From: Mark Crispin <Admin.MRC at SU-SCORE>
Subject: timing race in LGOUT% which causes ILMNRF bug halts
To: [SU-SCORE]<Admin.MRC>Tops-20.DIS.30: ;

Problem:
	ILMNRF and other wicked possibilities.

Diagnosis:
	LGOUT% tried to hang up a detached TTY.  In most places
it checks to make sure the TTY isn't detached, but it missed a
couple.

Solution:
	In MEXEC.MAC, at LOG1+10, replace:
	MOVE T2,CTRLTT
with:
	SKIPGE T2,CTRLTT	;MAKE SURE TTY NOT DETACHED
	 JRST LOG2
and at LOG1+25, replace:
	MOVE 2,CTRLTT
	CALL TTHNGU		;HANG UP LINE
with
	SKIPL 2,CTRLTT		;DON'T TRY TO HANG UP A DETACHED JOB
	 CALL TTHNGU		;HANG UP LINE
-------
23-Mar-80 07:08:01-EST,1344;000000000000
Mail from SU-SCORE rcvd at 23-Mar-80 0707-EST
Date: 23 Mar 1980 0401-PST
From: Mark Crispin <Admin.MRC at SU-SCORE>
Subject: FTSCTL
To: [SU-SCORE]<Admin.MRC>Tops-20.DIS.30: ;

I finally got sick and tired of having to constantly restart
FTSCTL because it had lost track of its shelf job, or having to
kill off multiple FTSCTL shelf jobs, or having FTP connections
in-between shelf job creations getting hung.  So I have ripped
all of that code out of FTSCTL and have greatly simplified the
program in the process.

FTSCTL at SCORE now never keeps a job "on the shelf"; instead, it
CRJOB%'s a server when somebody wants one.  This meant I could
get rid of all the IPCF stuff, and lots of other code as well.
The resulting program is a mere shell of the hair it once was,
and I hope - I expect - that it is much more reliable now.  It
should be, since many possible timing problems got eliminated in
one fell swoop.

The only cost to going this route is that it may take a little
bit longer for the FTP server to start once the connections are
opened.  I haven't noticed a significant difference.  If anybody
wants to try running the SCORE FTSCTL, just send me a message.
You'll probably need to modify it if you're still running the
32-bit leader NCP since it uses the GTNCP% JSYS in one place.

-- Mark --
-------
23-Mar-80 22:57:18-EST,989;000000000000
Mail from SU-SCORE rcvd at 23-Mar-80 2257-EST
Date: 23 Mar 1980 1951-PST
From: Mark Crispin <Admin.MRC at SU-SCORE>
Subject: multi-forking EXEC bug - OUTPUT subcommand of CONTINUE
To: [SU-SCORE]<Admin.MRC>Tops-20.DIS.30: ;

Problem:
	In the multi-forking EXEC, the OUTPUT subcommand of the
CONTINUE command does not work.  The subjob immediately bombs out
with a unassigned JFN error.

Diagnosis:
	The JFNs obtained by the OUTPUT and INPUT subcommands of
CONTINUE are on the JFN stack.  EXEC flushes all JFNs it finds
there when it goes to get another top-level command.

Solution:
	The right thing is for EXEC to forget that those JFNs
were ever there.  This fix is sort of a kludge, but it's
effective:
At .CONT1+1, replace:
	TRVAR <TMPJFN>
with:
	TRVAR <TMPJFN,SJBUFP>
	MOVE B,JBUFP		;WE WANT TO FORGET ABOUT JFN'S WE MAKE
	MOVEM B,SJBUFP
and at .CONT6, insert:
.CONT6:	MOVE A,SJBUFP		; FORGET ALL ABOUT THE JFNS FOR BACKGROUND FORK
	MOVEM A,JBUFP
-------
30-Mar-80 14:44:56-EST,1018;000000000000
Mail from SU-SCORE rcvd at 30-Mar-80 1444-EST
Date: 30 Mar 1980 1142-PST
From: Mark Crispin <Admin.MRC at SU-SCORE>
Subject: Full-time ARPA person at DEC
To: [SU-SCORE]<Admin.MRC>Tops-20.DIS.31: ;

Effective April 7, Dave Lyons (Lyons@DEC-2136) will
be DEC's full-time ARPA person.  He's now on this
mailing list, so he'll receive all messages which
come out on this list.

For those of you who may want to send a message to
this list and don't know or have forgotten how, you
can either FTP the file <ADMIN.MRC>TOPS-20.DIS from
SU-SCORE or send the message to me and I'll remail
it to the entire list.  TOPS-20.DIS is an indirect
file in MM COMND% JSYS format, so probably you'll
need to massage it a bit to get other mailsystems
to read it (for example, MS will not work with it,
although presumably MS can be fixed to do so).  This
list changes often, so remember to check the latest
version here if you choose to send the message out
yourself.

Welcome aboard Dave!

-- Mark --
-------
 1-Apr-80 04:10:16-EST,1209;000000000000
Mail from SU-SCORE rcvd at 1-Apr-80 0410-EST
Mail-from: ARPANET site MIT-AI rcvd at 31-Mar-80 1002-PST
Date: 31 Mar 1980 1303-EST
From: Chris Ryland <CPR at MIT-EE at MIT-AI>
Reply-to: CPR at MIT-XX
To: mrc at SU-SCORE
Remailed-date:  1 Apr 1980 0103-PST
Remailed-from: Mark Crispin <Admin.MRC at SU-SCORE>
Remailed-to: [SU-SCORE]<Admin.MRC>Tops-20.DIS.34: ;

An interesting bug that recently showed up in MIT's pre-pre-non-standard-R4
system: after an auto-reload, the -10 and -11 alternate in their disk
accessi, providing an interesting blinking light effect on the disk, but
not much else (it goes on forever).  Of course, rebooting by hand works.
Now, I don't know if this has anything to do with the non-standard front-end
we have (MMcM's chaos support version), but I've heard rumors that this problem
exists in some versions of R4.  Any corroborators?

[Note from MRC: This problem has not happened at SCORE.  The only
 thing wrong with our front end is that it gets DTB 11-HALTs.  It
 seems to be associated with the lineprinter being sick, though;
 so it could merely be that the lineprinter service isn't
 sufficiently defensive against printer hardware lossage.]
-------

 5-Apr-80 08:51:41-EST,900;000000000000
Mail from SU-SCORE rcvd at 5-Apr-80 0851-EST
Mail-from: ARPANET site UTAH-20 rcvd at 4-Apr-80 2359-PST
Date:  5 Apr 1980 0053-MST
From: Randy Frank <FRANK at UTAH-20>
Subject: Access control job and logout
To: admin.mrc at SU-SCORE
Remailed-date:  5 Apr 1980 0544-PST
Remailed-from: Mark Crispin <Admin.MRC at SU-SCORE>
Remailed-to: [SU-SCORE]<Admin.MRC>Tops-20.DIS.34: ;

(plz forward to dist list)

If you are using the .golgo function in access control (logout function),
you cannot run batcon under sysjob.  The getok function in the monitor
refuses to issue a getok on behalf of job 0 (presumable to avoid hanging
some critical job 0 function). You must therefore run batcon as either a
separate job or as a fork (assuming a multi fork exec) under some non
job 0 job.  If Batcon runs under job 0, then any batch job which is logged
out by batcon will not go thru ACJ
-------
 7-Apr-80 01:34:11-EST,887;000000000000
Mail from SU-SCORE rcvd at 7-Apr-80 0134-EST
Date:  6 Apr 1980 2229-PST
From: Mark Crispin <Admin.MRC at SU-SCORE>
Subject: bug in EXECP for multi-forking EXEC users
To: [SU-SCORE]<Admin.MRC>Tops-20.DIS.34: ;

Problem:
	In the multi-forking EXEC, the STAY subcommand of the
START command is broken, and bombs out looping with an illegal
memory write at the SETZM (C) at RJFNS8.

Diagnosis:
	The earlier edit to fix the OUTPUT subcommand of CONTINUE
in the multi-forking EXEC forgot that START enters .CONT3 as
well, and so .CONT3 was called without the proper TRVAR context.

Solution:
	(only if you inserted the earlier CONTINUE edit involving
the addition of a SJBUFP TRVAR variable)  In EXECP, at .START+4,
insert:
	TRVAR <TMPJFN,SJBUFP>	;TMPJFN NOT USED, BUT TO KEEP TRVAR CONTEXT
	MOVE B,JBUFP		;WE WANT TO FORGET ABOUT JFN'S WE MAKE
	MOVEM B,SJBUFP
-------
 7-Apr-80 01:56:14-EST,1071;000000000000
Mail from SU-SCORE rcvd at 7-Apr-80 0156-EST
Date:  6 Apr 1980 2255-PST
From: Mark Crispin <Admin.MRC at SU-SCORE>
Subject: EXECP bug - START command in multi-forking EXEC
To: [SU-SCORE]<Admin.MRC>Tops-20.DIS.34: ;

My apologies to anybody who is getting this twice, or who received
it in a garbage form the first time.  The network mailer here blew
up while mailing the message:

Problem:
	In the multi-forking EXEC, the STAY subcommand of the
START command is broken, and bombs out looping with an illegal
memory write at the SETZM (C) at RJFNS8.

Diagnosis:
	The earlier edit to fix the OUTPUT subcommand of CONTINUE
in the multi-forking EXEC forgot that START enters .CONT3 as
well, and so .CONT3 was called without the proper TRVAR context.

Solution:
	(only if you inserted the earlier CONTINUE edit involving
the addition of a SJBUFP TRVAR variable)  In EXECP, at .START+4,
insert:
	TRVAR <TMPJFN,SJBUFP>	;TMPJFN NOT USED, BUT TO KEEP TRVAR CONTEXT
	MOVE B,JBUFP		;WE WANT TO FORGET ABOUT JFN'S WE MAKE
	MOVEM B,SJBUFP
-------
-------
 7-Apr-80 04:34:32-EST,1827;000000000000
Mail from SU-SCORE rcvd at 7-Apr-80 0434-EST
Date:  6 Apr 1980 2333-PST
From: Mark Crispin <Admin.MRC at SU-SCORE>
Subject: critical fix to MEXEC - carrier off PSI system crashes
To: [SU-SCORE]<Admin.MRC>Tops-20.DIS.34: ;

     I consider the following fixes to be critical fixes, because
it is rather trivial to exploit these bugs to crash the system.
In fact, I have a program which reproducably crashes SCORE both
under SCORE's monitor and a vanilla DEC monitor.  I doubt that
anybody requires a demonstration.  I certainly feel that it's
worth a CTCO.  -- Mark

Problem:
	All sorts of wondrous system crashes can occur when a job
which was detached by a carrier off PSI continues.  The errors
are many and varied - ILLUUO's in magtape SOUT%, NETBAU's
following on the heels of a IMPBSC (of a totally 0 message),...

Diagnosis:
	PSI service (in SCHED) runs in section 0.  However, it
can call routines such as JOBCOF which (since they may run the
IMP) must run in section 1.

Solution:
	At JOBCOF, insert:
	SE1ENT
Note: I originally attacked the problem as changes to PSI
service, but when I saw that FLOGO (the other routine called in
the way JOBCOF is called) went into section 1 via SE1ENT I
decided to do it this way for consistancy.  There are a lot of
really dubious practices done in SCHED around the PSI service
code - it needs revamping.


Problem:
	There are some other obvious section 0 losers in MEXEC.

Diagnosis:
	Ho Ho Ho, see the clever programmer who PUSH's a literal
as a PC.

Solution:
	In MEXEC.MAC, at the literal pointed to by JOBCOF+1,
replace:
		PUSH P,[MRETN]	;SETUP RETURN
with:
		PUSH P,[IFIW!MRETN] ;SETUP RETURN
and at SAVEB+2, replacce:
	PUSH P,[SAVEBL]		;YES, DO IT IN TWO PARTS
with:
	PUSH P,[IFIW!SAVEBL]	;YES, DO IT IN TWO PARTS
-------
 7-Apr-80 09:38:25-EST,648;000000000000
Mail from SU-SCORE rcvd at 7-Apr-80 0938-EST
Date:  7 Apr 1980 0636-PST
From: Mark Crispin <Admin.MRC at SU-SCORE>
Subject: reporting errors in Ephemerals
To: [SU-SCORE]<Admin.MRC>Tops-20.DIS.34: ;

Problem:
	An error in an ephemeral gives the confusing (and
meaningless) error message ?Unusual fork termination status xxxx
where xxxx is some random number

Diagnosis:
	WEPHM calls FKTRM1, which expects the fork status in B,
but WEPHM didn't set it up.  Maybe it is in A, although not
necessarily.

Solution:
	At WEPHM+21, before the
	JRST FKTRM1		; TELL OF LOSSAGE
insert:
	MOVE B,LRFSTS+.RFPSW	; SET UP STATUS IN B
-------
 7-Apr-80 09:44:11-EST,648;000000000000
Mail from SU-SCORE rcvd at 7-Apr-80 0944-EST
Date:  7 Apr 1980 0636-PST
From: Mark Crispin <Admin.MRC at SU-SCORE>
Subject: reporting errors in Ephemerals
To: [SU-SCORE]<Admin.MRC>Tops-20.DIS.34: ;

Problem:
	An error in an ephemeral gives the confusing (and
meaningless) error message ?Unusual fork termination status xxxx
where xxxx is some random number

Diagnosis:
	WEPHM calls FKTRM1, which expects the fork status in B,
but WEPHM didn't set it up.  Maybe it is in A, although not
necessarily.

Solution:
	At WEPHM+21, before the
	JRST FKTRM1		; TELL OF LOSSAGE
insert:
	MOVE B,LRFSTS+.RFPSW	; SET UP STATUS IN B
-------
 7-Apr-80 12:09:54-EST,2040;000000000000
Mail from SU-SCORE rcvd at 7-Apr-80 1209-EST
Mail-from: ARPANET site UTAH-20 rcvd at 7-Apr-80 0901-PST
Date:  7 Apr 1980 0950-MST
From: Randy Frank <FRANK at UTAH-20>
Subject: Fix to MEXEC to have ACJ called on implicit logout caused by carrier off
To: admin.mrc at SU-SCORE
Remailed-date:  7 Apr 1980 0903-PST
Remailed-from: Mark Crispin <Admin.MRC at SU-SCORE>
Remailed-to: [SU-SCORE]<Admin.MRC>Tops-20.DIS.34: ;


Problem:  If you are using the login/logout function of ACJ for accounting
(and/or controlling the maximum number of login for a user), the logout
function is not invoked if a job is implicitly logged out.  This can happen
if a dial-up user hangs up without logging out.  The job is first detached,
then after a timeout (five minutes in the distributed monitor) if no attach
has occured the job is logged out by the monitor.

Diagnosis:  The logout function of ACJ is only invoked if an explicit
LGOUT jsys is executed for a job (either by itself or another job).

Fix: Add code to call ACJ on implicit logout of a job after hang up/detach
timeout.  Note, that due to the special nature of this logout, I don't
accept "NO" for an answer from ACJ (I ignore a "deny request" return
from ACJ).  For this reason (and the fact that the "job to log out"
argument normally given in the LGOUT jsys must be simulated), this
patch cannot use the normal logout getok utility subroutine.

In MEXEC at JOBCF1+14 replace the JRST FLOGO (preceeding the NOINT) with:

	JRST  [	MOVSI T1,(UMODF)	;FAKE USER PC
		MOVEM T1,FFL		
		SETZM FPC
		SE1ENT			;ENTER SECTION 1
		MCENTR			;SIMULATE ENTRY FROM USER
		MOVE T1,JOBNO
		HRRZ T1,JOBDIR(T1)	;DIRECTORY
		JUMPE T1,FLOGO1		;DON'T GETOK SINCE NOT LOGGED IN
		HRLI T1,USRLH
		CALL CNVDIR		;GET DIRECTORY NUMBER
		GTDAL			;GET ALLOCATION
		ERJMP FLOGO1		;DON'T GETOK SINCE SOME ERROR
		SETOM T1		;PRETEND AS THOUGH LGOUT WITH -1 GIVEN
		GTOKM (.GOLGO,<T2,T3,T1>,FLOGO1) 	;PERMISSION (DON'T TAKE
							;NO FOR AN ANSWER)!!
		JRST FLOGO1 ]

-------
 8-Apr-80 03:34:16-EST,1881;000000000000
Mail from SU-SCORE rcvd at 8-Apr-80 0333-EST
Date:  8 Apr 1980 0031-PST
From: Mark Crispin <Admin.MRC at SU-SCORE>
Subject: revised section mapping/hung jobs bug fix
To: [SU-SCORE]<Admin.MRC>Tops-20.DIS.34: ;

Note:  If you inserted my earlier change to SECMAP which decremented
the share count before returning an error, remove it and replace it
with this fix.  The earlier bug fix is wrong and can cause PAGLCK
bug halts because it can try to unmap the fork's page table while it
is still in use (I didn't think that fix was right anyway).

Problem:
	Inferior forks hung in KSEF3, keeping top level fork from
logging out.

Diagnosis:
	One way this happens is if the user runs TV in extended
addressing mode.  TV runs in big addresses (unfortunately not to
advantage yet) if you enable it and fix a couple of minor bugs on
the way.  What it does is map section 0 into a private section 3
then goes there.
	When the fork is reset, it does an SMAP% to get rid of
the private section.  SECMAP notices that the section has a share
count greater than 1 and returns SMAPX1.
	However, it can't get rid of the other side either, so we
have a deadlock.

Solution:
	The earlier code of last summer allowed unmapping the
page irregardless of whether or not it had a share count greater
than 1.  For some reason this code was changed, but it isn't
clear why.  Len Bosack and I went through the code and it seems
that the old code really was the right thing.
	At SECMAP+14 or so, replace:
	RETBAD (SMAPX1,<OKSKED
		CALL RELCPT>)	;YES, CAN'T DELETE
with:
	 JRST [	LOAD T1,SPTX,T2	;DECREMENT THE SHARE COUNT THOUGH
		CALL DWNSHR
		JRST SECMA2]	;AND CHARGE ON

Note that this change effectively deletes the SMAPX1 error.  This
seems to be alright though.  If anybody has a case where it isn't,
I'll see if we can debug it here.

-- Mark --
-------
 8-Apr-80 14:36:06-EST,563;000000000000
Mail from SU-SCORE rcvd at 8-Apr-80 1435-EST
Date:  8 Apr 1980 1128-PST
From: Chris Ryland <g.Ryland at SU-SCORE>
Subject: bad lptspl security bug
To: [SU-SCORE]<Admin.MRC>Tops-20.DIS.34: ;

I don't know if this is a function of the old Quasar system we're running
(prerelease) but if you can print a file you can also /delete it (ie as
requested in the print command).  This is, needless to say, somewhat unfor-
tunately.  I guess the solution is to put a delete-access check into lptspl, but
I haven't had time yet.  Try it, you'll like it.
-------
12-Apr-80 22:21:59-EST,1078;000000000000
Mail from SU-SCORE rcvd at 12-Apr-80 2221-EST
Mail-from: ARPANET site UTAH-20 rcvd at 10-Apr-80 1604-PST
Date: 10 Apr 1980 1656-MST
From: Randy Frank <FRANK at UTAH-20>
Subject: Fix to page fault in sched. context problem
To: admin.mrc at SU-SCORE
Remailed-date: 12 Apr 1980 1920-PST
Remailed-from: Mark Crispin <Admin.MRC at SU-SCORE>
Remailed-to: [SU-SCORE]<Admin.MRC>Tops-20.DIS.35: ;

The routine ACJKIL in JSYSA should be RESCD and not SWAPCD as it is
called from scheduler context.  Change the SWAPCD to RESCD above
ACJKIL::

[Note from MRC: This isn't completely right.  What you really
 want to do is to move the SWAPCD above RESCD to the bottom of
 that page, after the ACJDON routine.  This causes .GTABS to be
 in swappable code as it should be.
This is a pretty important bug fix if you swap a lot, since if
 your ACJ crashes (the RCVTMR bug check) you stand a chance of
 blowing your system away as well.  Of course, you may want the
 system to be blown away if ACJ dies, but the right way to do
 that is to make RCVTMR a bug halt.]
-------
16-Apr-80 22:10:17-EST,656;000000000000
Mail from SU-SCORE rcvd at 16-Apr-80 2210-EST
Date: 16 Apr 1980 1908-PST
From: Mark Crispin <Admin.MRC at SU-SCORE>
Subject: EXECP bug - ephemerals not resetting TTY modes
To: [SU-SCORE]<Admin.MRC>Tops-20.DIS.36: ;

Problem:
	After running an ephemeral, the TTY's mode is left set
the way the program set it instead of the way EXEC wants it.  In
particular, the COC words may be wrong.

Diagnosis:
	The ephemeral code doesn't bother to reset the TTY's mode
to EXEC's TTY mode.

Solution:
	Add code to reset the TTY modes.  At WEPHM+2, after the
CALL PIOFF, insert:
	MOVEI Q1,ETTYMD		;RESTORE EXEC'S TTY MODES
	CALL LTTYMD		;..
-------
18-Apr-80 15:42:40-EST,1118;000000000000
Mail from SRI-KL rcvd at 18-Apr-80 1542-EST
Date: 18 Apr 1980 1227-PST
From: LARSON at SRI-KL
Subject: FTSCTL
To: [SU-SCORE]<Admin.MRC>Tops-20.DIS.40: ;

  I too have had many troubles  with FTSCTL.  It would try to  make
connections before it had  established the shelf  job, or lose  the
shelf job and connect the ftp users to an exec, and other things.
  Instead of removing the  shelf job code, as  Mark did, I  removed
ALL of FTSCTL.  Instead of running FTSCTL, I now have NETSER do  my
ftp server connections.  I have therefore eliminated the shelf job,
and a system fork.  There appears to be no signifigant delay in the
operation of ftp service.
  In order to continue with my efficiency effort, I also csaved the
new NETSER, so the JFN/OFN would not be needed for the mapped pages
of the program.  Sharing did not seem to be a benefit, since netser
is only run once on the system anyway.  I had already done the same
thing with SYSJOB.
  Since the srccom for this is  rather long, I will not clutter  up
everyone's mail with it.  If you are interested in it, let me know.
	Alan
-------
29-Apr-80 20:29:05-EDT,2067;000000000000
Mail from SU-SCORE rcvd at 29-Apr-80 2028-EDT
Mail-from: ARPANET site UTAH-20 rcvd at 29-Apr-80 1302-PDT
Date: 29 Apr 1980 1402-MDT
From: Randy Frank <FRANK at UTAH-20>
Subject: Bug causing system to hang due DEVLCK locked
To: admin.mrc at SU-SCORE
Remailed-date: 29 Apr 1980 1714-PDT
Remailed-from: Mark Crispin <Admin.MRC at SU-SCORE>
Remailed-to: [SU-SCORE]<Admin.MRC>Tops-20.DIS.42: ;

We've been seeing our system hanging periodically due to a process locking
DEVLCK and then blocking with DEVLCK locked.  It happens when a process
goes to close a non-primary TTY line (opened for write) which still has
data in its output buffer.  In our case, if that line is blocked (for example,
^S is blocking it), the system will totally hang as other processes queue
up on DEVLCK.  The problem is that the system does a DOBE with DEVLCK locked.
Our fix follows.  We have decided that under such a case it is reasonable
to allow the user to cntl-C out of such a state; I'd be interested in comments
from others as to whether they think that is reasonable.  Our patch has been
in for about 48 hours and seems to solve the problem, although it's hard to 
tell for sure given the nature of the system hang.

In FILMSC.MAC:



; FILMSC.MAC.2 & FILMSC.MAC.1 28-Apr-80 1624	PAGE 1



LINE 1, PAGE 1
1)	;DSK:<4-MONITOR-SOURCES>FILMSC.MAC.2 28-Apr-80 16:07:45, Edit by FRANK
1)	;FIX SYSTEM HANGING CAUSED BY DOBE WHILE DEVLCK IS LOCKED AT TTYCL5-1
1)	;<4.MONITOR>FILMSC.MAC.45, 26-Oct-79 14:51:15, EDIT BY ZIMA
LINE 1, PAGE 1
2)	;<4.MONITOR>FILMSC.MAC.45, 26-Oct-79 14:51:15, EDIT BY ZIMA


LINE 35, PAGE 20
1)		SOBE			;SEE IF OUTPUT BUFFER EMPTY
1)		JRST [  UNLOCK DEVLCK	;DON'T DISMISS WITH DEVLCK LOCKED
1)			OKINT		;SO USER CAN CNTL-C
1)			DOBE		;Wait until finished doing anything
1)			MOVE T1,TTFLX	
1)			JRST  TTYCL3 ]	;AND TRY AGAIN
1)	TTYCL5:	MOVE T1,TTYCLX		;GET INDEX TO DEVICE TABLES
LINE 35, PAGE 20
2)		DOBE			;Wait until finished doing anything
2)	
2)	TTYCL5:	MOVE T1,TTYCLX		;GET INDEX TO DEVICE TABLES

-------
29-Apr-80 21:37:12-EDT,1113;000000000000
Mail from SU-SCORE rcvd at 29-Apr-80 2136-EDT
Mail-from: ARPANET site UTAH-20 rcvd at 29-Apr-80 1823-PDT
Date: 29 Apr 1980 1922-MDT
From: Randy Frank <FRANK at UTAH-20>
Subject: Revision to previous FILMSC patch
To: admin.mrc at SU-SCORE
Remailed-date: 29 Apr 1980 1832-PDT
Remailed-from: Mark Crispin <Admin.MRC at SU-SCORE>
Remailed-to: [SU-SCORE]<Admin.MRC>Tops-20.DIS.42: ;

Mark caught error in previous patch; following is corrected version:



; FILMSC.MAC.3 & FILMSC.MAC.1 29-Apr-80 1917	PAGE 1



LINE 34, PAGE 20
1)		TQNN <WRTF>		;If opened for output
1)		JRST TTYCL5		;not output, so don't look at output buffer
1)		SOBE			;SEE IF OUTPUT BUFFER EMPTY
1)		JRST [  UNLOCK DEVLCK	;DON'T DISMISS WITH DEVLCK LOCKED
1)			OKINT		;SO USER CAN CNTL-C
1)			DOBE		;Wait until finished doing anything
1)			MOVE T1,TTFLX	
1)			JRST  TTYCL3 ]	;AND TRY AGAIN
1)	TTYCL5:	MOVE T1,TTYCLX		;GET INDEX TO DEVICE TABLES
LINE 34, PAGE 20
2)		TQNE <WRTF>		;If opened for output
2)		DOBE			;Wait until finished doing anything
2)	TTYCL5:	MOVE T1,TTYCLX		;GET INDEX TO DEVICE TABLES

-------
14-May-80 21:00:39-EDT,2177;000000000000
Mail from SU-SCORE rcvd at 14-May-80 2100-EDT
Mail-from: ARPANET site UTAH-20 rcvd at 12-May-80 0011-PDT
Date: 11 May 1980 2221-MDT
From: Randy Frank <FRANK at UTAH-20>
Subject: Replacement fix to DOBE problem in FILMSC
To: admin.mrc at SU-SCORE, lyons at DEC-2136
Remailed-date: 14 May 1980 1752-PDT
Remailed-from: Mark Crispin <Admin.MRC at SU-SCORE>
Remailed-to: [SU-SCORE]<Admin.MRC>Tops-20.DIS.42: ;

The previous fix I sent out corrected the problem of the system hanging
due to DEVLCK being locked and the process dismissing, but unfortunately
didn't toally correct the problem as the user couldn't ^C out of the
close (the process was several levels deep in NOINT, and the single
OKINT didn't make the process interruptable).

The following fix replaces the previous one; the fix is stated in terms of
the original DEC code and not in terms of the previous patch.

This patch not only prevents the system from hanging if a user tries
to CLOSF a line which is suspended (e.g., by ^S being typed on it),
but also allows the user to ^C out of such a condition.



; FILMSC.MAC.4 & PIC:FILMSC.MAC.1 11-May-80 2212	PAGE 1



LINE 1, PAGE 1
1)	;DSK:<4-MONITOR-SOURCES>FILMSC.MAC.4  6-May-80 12:45:31, Edit by FRANK
1)	;Fix system/process hanging at TTYCL5-1 due to dismiss while DEVLCK locked
1)	;and process NOINT
1)	;<4.MONITOR>FILMSC.MAC.45, 26-Oct-79 14:51:15, EDIT BY ZIMA
LINE 1, PAGE 1
2)	;<4.MONITOR>FILMSC.MAC.45, 26-Oct-79 14:51:15, EDIT BY ZIMA


LINE 34, PAGE 20
1)		TQNN <WRTF>		;If opened for output
1)		JRST TTYCL5		;not output, so don't look at output buffer
1)		SOBE			;SEE IF OUTPUT BUFFER EMPTY
1)		JRST [  UNLOCK DEVLCK	;DON'T DISMISS WITH DEVLCK LOCKED
1)			OKINT		;Undo NOINT done by lock of DEVLCK
1)			HLL T1,DEV	;Set up T1 for MDISMS
1)			HRRI T1,TTOBET	;same test as for DOBE
1)			TQO <BLKF>	;tell caller we want to block and restart
1)			RET ]		;and return failure
1)	TTYCL5:	MOVE T1,TTYCLX		;GET INDEX TO DEVICE TABLES
LINE 34, PAGE 20
2)		TQNE <WRTF>		;If opened for output
2)		DOBE			;Wait until finished doing anything
2)	
2)	TTYCL5:	MOVE T1,TTYCLX		;GET INDEX TO DEVICE TABLES

-------
17-May-80 20:18:40-EDT,1568;000000000001
Mail from SU-SCORE rcvd at 17-May-80 2018-EDT
Mail-from: ARPANET site SRI-KL rcvd at 9-May-80 0059-PDT
Date:  8 May 1980 1836-PDT
From: Meyers at SRI-KL (Harris A. Meyers)
Subject: FTP bug fix
To: admin.mrc at SU-SCORE
Remailed-date: 17 May 1980 1713-PDT
Remailed-from: Mark Crispin <Admin.MRC at SU-SCORE>
Remailed-to: [SU-SCORE]<Admin.MRC>Tops-20.DIS.42: ;

*** Mark, please forward  ***

In version 3 (and beyound) the SAVEAC macro in MACSYM does a
SETMI 16, [...]
PUSH 17,16

to make things work in nonzero sections.  16 is supositly reserved to MACSYM,
but in FTP at TYI1 there is a SAVEAC with good data in 16, I fixed it by
changing 16 to 12 (see attached srccom). However mayhaps the code in MACSYM
should get changed to
PUSH 17,16
SETMI 16,[...]
EXCH 16,(17)

harris

-----------------------------------------------------------------------------



; FTP.MAC.3 & FTP.MAC.2  8-May-80 1745	PAGE 1



LINE 1, PAGE 1
1)	;<3-SOURCES>FTP.MAC.3,  8-May-80 16:42:22, Edit by MEYERS
1)	;2 change ac X from 16 to 12 to avoid interaction with MACSYM
1)	;<3-SOURCES>FTP.MAC.2, 10-Feb-78 16:32:12, Edit by MMCM
LINE 1, PAGE 1
2)	;<3-SOURCES>FTP.MAC.2, 10-Feb-78 16:32:12, Edit by MMCM


LINE 43, PAGE 1
1)	VWHO==1			;2 LAST EDITED BY SRI
1)	VMAJOR==3		;MAJOR VERSION #
LINE 41, PAGE 1
2)	VWHO==0			;LAST EDITED BY DEC
2)	VMAJOR==3		;MAJOR VERSION #


LINE 63, PAGE 1
1)	X=12		;2 MESSAGE POINTER
1)	BP=15
1)	P=17	;STANDARD STACK
LINE 61, PAGE 1
2)	BP=15
2)	X=16	;MESSAGE POINTER
2)	P=17	;STANDARD STACK

-------
27-May-80 02:12:08-EDT,982;000000000000
Mail from SU-SCORE rcvd at 27-May-80 0211-EDT
Date: 26 May 1980 2307-PDT
From: Mark Crispin <Admin.MRC at SU-SCORE>
Subject: ILMNRF bug halt bug fix
To: [SU-SCORE]<Admin.MRC>Tops-20.DIS.42: ;

Problem:
	Another way to get an ILMNRF bug halt.

Diagnosis:
	An old friend.  At LDTAC2+11 there is a MOVE T2,CTRLTT
which assumes that CTRLTT contains a real TTY because earlier it
had checked.  However, as usual there is a timing race problem.
It lost the race earlier this morning.

Solution:
	At LDTAC2+11, replace:
	MOVE T2,CTRLTT
with:
	SKIPGE T2,CTRLTT
	 RET

Note: there are other bugs of the same type reported earlier to
this list.  Most of them tend to be of the form
	MOVE T2,CTRLTT
	CALL STADYN
	 <go away since line is idle>
We get an ILMNRF because STADYN skip returns with whatever is in
TTACTL-1 when it is fed a -1 in T2.  I am tempted to fix STADYN
to take the non-skip return and possibly bug check if it is fed a
detached line.
-------
28-May-80 13:54:11-EDT,802;000000000000
Mail from SU-SCORE rcvd at 28-May-80 1354-EDT
Date: 28 May 1980 1045-PDT
From: G.Norm at SU-SCORE (Norm Kincl)
Subject: Two R4 fixes
To: [SU-SCORE]<Admin.MRC>Tops-20.DIS.42:

There are two problems that DEC fixed for us during Field Test,
but did not get into the final release (nor into any .BWR file we got)

Problem: If ACJ refuses a structure mount, the structure lock
	count is not unlocked.

Solution: At about MSTDMC+14, the GTOKM macro should be:

	GTOKM (.GOSMT,<T1>,MCTNOK)
and, just before MCTERR, add
MCTNOK:	CALL MCTERR		;unlock the structure
	ITERR ()		;return illegal instr. error
Problem: Tops-20 doesn't seem to like 3-pack RP06 PS:

Cause:	MXPGUN is defined in terms of RP04 packs

Solution:	Redifine MXPGUN to be

	MXPGUN==:<HOMTBL*PAGCY1*CYLUN1>

-------
28-May-80 23:06:30-EDT,401;000000000000
Mail from SU-SCORE rcvd at 28-May-80 2306-EDT
Date: 28 May 1980 2002-PDT
From: Mark Crispin <Admin.MRC at SU-SCORE>
Subject: Norm Kincl's note about MXPGUN definition
To: [SU-SCORE]<Admin.MRC>Tops-20.DIS.42: ;

Note that you don't need to make Norm's MXPGUN redefinition if you
remember that MXSTRU is in RP04 units.  You just redefine MXSTRU as
6 if you want a three-RP06-pack PS:.
-------
28-May-80 23:32:14-EDT,472;000000000000
Mail from SU-SCORE rcvd at 28-May-80 2332-EDT
Date: 28 May 1980 2027-PDT
From: Mark Crispin <Admin.MRC at SU-SCORE>
Subject: CRITICAL BUG FIX -- SECURITY BUG
To: [SU-SCORE]<Admin.MRC>Tops-20.DIS.42: ;

Problem:
	Anybody can do an MSFRK% JSYS.

Diagnosis:
	The privilege check checks the left halfword for the
privilege bits instead of the right halfword.  Oops.

Solution:
	At MSFRK+3, replace:
	TLNE 4,SC%WHL!SC%OPR
with:
	TRNE 4,SC%WHL!SC%OPR
-------
12-Jun-80 07:48:10-EDT,278;000000000001
Mail from SU-SCORE rcvd at 12-Jun-80 0748-EDT
Date: 12 Jun 1980 0213-PDT
From: Mark Crispin <Admin.MRC at SU-SCORE>
Subject: IMPDV bug
To: [SU-SCORE]<Admin.MRC>Tops-20.DIS.43: ;

T4 should be saved in the literal called by IMPOSY.  It gets clobbered
by HSTDED.
-------
13-Jun-80 23:07:39-EDT,2697;000000000000
Mail from SU-SCORE rcvd at 13-Jun-80 2307-EDT
Date: 13 Jun 1980 2001-PDT
From: Mark Crispin <Admin.MRC at SU-SCORE>
Subject: [HEDRICK at RUTGERS: for your mailing list]
To: [SU-SCORE]<Admin.MRC>Tops-20.DIS.45: ;

[Note from MRC:
 This problem had to be fixed in the SAIL compiler.  In general, I
 think it is a bad idea to analyze error codes from the COMND%
 JSYS.  I'm afraid the best way is to have multiple blocks.  It
 seems to me that trusting the maintainers of COMND% not to
 change the error codes around is being too trusting.] 

                ---------------
Mail-from: ARPANET site RUTGERS rcvd at 13-Jun-80 1609-PDT
Date: 13 Jun 1980 1904-EDT
From: HEDRICK at RUTGERS
Subject: for your mailing list
To: admin.mrc at SU-SCORE

Has anyone SPR'ed the following bug, and gotten an answer?  I have
code that it breaks.  While I can make the code survive the bug, a
complete workaround would require me to distribute a fairly complex
patch (requiring fixes to all Pascal programs that use the COMND
jsys, as well as the Pascal and Sail compilers) to almost 100 sites.
I would much rather hear that DEC agrees to fix it and the fix is
to be published in the next Dispatch.


The problem is that COMND now returns NPXAMB for several different
errors in switches.  This message is supposed to mean that a switch
is ambiguous.  That is what it does mean for 3A.  But on 4 apparently
it gets returned when you do CMSWI and somebody types a <cr>, or
even /<cr>.  One could almost believe that these were in fact degenerate
forms of switches, and treat them as ambiguous, if there weren't
error codes that are clearly better, NPXNSW (Not a switch - does not
begin with slash) and NPXNUL (Null switch or keyword).  Unfortunately
I did not bother to implement linking several function blocks in the
Pascal COMND support.  I allow optional switches by distinguishing
between an illegal switch (which I treat as an error) and something
that is clearly not a switch at all (in which case I return a special
code, and the user typically goes on to the next field in the command).
On 4 I can't see any way to make this work, since I can't distinguish
between <cr> and an ambiguous switch.  I can implement multiple 
function blocks, of course, but then I have to update all the sites
who are not on the arpanet and whose Pascal has suddenly stopped
working.  The update is going to be complex, probably several pages
of code in PASCMD, and logic changes to several Pascal programs.  It
will also double the number of states in the finite-state automaton
used by SAIL's command parser.

grrrrr.....
-------
                ---------------
-------
16-Jun-80 00:41:27-EDT,814;000000000000
Mail from SU-SCORE rcvd at 16-Jun-80 0041-EDT
Date: 15 Jun 1980 2133-PDT
From: J. Q. Johnson <Admin.JQJ at SU-SCORE>
Subject: Re: [HEDRICK at RUTGERS: for your mailing list]
To: Admin.MRC at SU-SCORE
cc: [SU-SCORE]<Admin.MRC>Tops-20.DIS.45: ;
In-Reply-To: Your message of 13-Jun-80 2002-PDT

I'm afraid I can't agree with Chuck's analysis.  It is ALWAYS a bad idea
on Tops-20 to depend on the error codes for an analysis of what went
wrong with a jsys.  It is MUCH too likely that they will change.  When
I write code, I don't even use the eof error message on SIN, but rather
do a GTSTS to make sure.  In this case it is very clear that using linked
fdbs is the right way to do things; the code is actually shorter if it's
done right, and it makes available better standard help messages.
-------
19-Jun-80 05:07:05-EDT,4416;000000000000
Mail from SU-SCORE rcvd at 19-Jun-80 0506-EDT
Date: 19 Jun 1980 0159-PDT
From: Mark Crispin <Admin.MRC at SU-SCORE>
Subject: ARPANET host status and the HS%VAL bit
To: [SU-SCORE]<Admin.MRC>Tops-20.DIS.46: ;
cc: Clements at BBNA, DBell at DEC-2136, MMcM at MIT-AI

[Note:  This message is of interest to people writing or
 maintaining software for the ARPANET, especially software which
 reads host status information.  As the author and maintainer of
 the new TOPS-20 TELNET program, I have a good deal of interest
 in this issue and would like to hear other people's opinions.]

     I have been investigating why I was not receiving any host
status from certain hosts.  These hosts were invisible to the
host display in SYSDPY, and TELNETing to them simply returned
host dead with no other information.  After some wild goose
chases, I observed that in all cases the HS%VAL bit was off in
the host status, and both my TELNET and SYSDPY were ignoring a
host status with this bit off.

     After some further reading of the code, I determined that
this is what HS%VAL really means:

     HS%VAL is cleared when the host hash table is set up when
SYSTEM:HSTNAM.TXT is read in.  HS%VAL is set when an RST or RRP
comes in from a host, or when a dead host status message is
returned from the IMP.  Since the monitor normally broadcasts
RSTs to every host on the network when the NCP comes up for the
first time, HS%VAL should be set for every host unless the IMP
fails to return any disposition of the message.

     Suppose however that the host is up, but is not talking NCP
protocol or (I presume this is true) is on the secure subnet.  In
this case, messages can be sent to the host and an RFNM will come
back, but no NCP protocol reply will ever be returned.  The
result is that HS%VAL will never be set for the host, despite the
fact that the host's status is known; up but not talking NCP.

     When you try to connect to such a host, the system will
notice HS%UP and HS%VAL are off, and will try to send an RST.
When the RRP timeout happens (5 seconds or so; the code actually
checks for HS%UP coming up which won't happen either), the job
gets OPNX20 but once again HS%VAL won't be set.

     There is an obvious fix to this, which is to make IMRFNM
call IM8RRP first thing.  This will have the effect that as far
as host status is concerned, the status is "valid" and "up".  I'm
not sure if doing this for every RFNM (including doing a HSTHST)
that comes in is a good idea or not.  Doing this will also defeat
the clever RRP timeout code, causing the OPENF% to wait around
much longer until the RTS times out.  Also, "up but no NCP
protocol" would be indistinguishable from "up" without actual
experimentation.  This does, however, make the code match the
documentation.

     Alternatively, the code could be left as it is, and change
the documentation to say that HS%VAL being off coming after an
attempt to connect to the host really means that the host is up
but it doesn't have an NCP.  This "works" a bit better; there is
a separate status for "up but no NCP" and "up" and the RST
timeout will work.  However, this is sort of airing dirty laundry
in public by documenting incredible ugliness as a feature.

     More complex but really the right thing would be to clean up
the status bits so that they are meaningful.  Currently HS%UP is
used as both a host up and a status-is-valid bit (it gets turned
off if the IMP flaps) while HS%VAL never goes off once it comes
on.  Probably three status bits are desired:
 (1) valid status.  We have determined initial status for this
     host, and the IMP has been up since that time.
 (2) host up.  The host is up; ie, you get an RFNM when you send
     a message to that host.
 (3) host NCP up.  The host has sent us an RST or an RRP,
     indicating that it is talking NCP protocol.
This would be some work, but would be a lot cleaner; probably no
user programs would be affected adversely.  However, my TELNET
would use this information for more meaningful error reporting.

     I would be interested in some comments from the BBN folks
about this, particularly in regards to redoing the status bits.
I am willing to assist in such a project, but only if I had some
certainty that these changes would be merged into the official
TOPS-20AN sources.

-- Mark --
-------
28-Jun-80 00:02:03-EDT,727;000000000000
Mail from SU-SCORE rcvd at 28-Jun-80 0001-EDT
Date: 27 Jun 1980 2059-PDT
From: g.Meyers at SU-SCORE (Harris A. Meyers)
Reply-to: Meyers@SRI-KL
Subject: Question about SACTF
To: [SU-SCORE]<Admin.MRC>Tops-20.DIS.46:

In JSYSF at SACTF1+3 and SACTF4+4 plus other related code scattered
throughout .SACTF great care is taken to store the new account in the
JFN data base in the JSB (FILACT(JFN)).  Can anyone tell me of what 
use this code is?  It has the following bad side effect: any GNJFN
done on the JFN used by the SACTF will only find files with the new
account from then on.  I consider this a bug and am considering
removeing the code, but was wondering if doing so will break something


harris
-------
 1-Jul-80 15:07:02-EDT,1913;000000000000
Mail from SU-SCORE rcvd at 1-Jul-80 1506-EDT
Mail-from: ARPANET site MIT-XX rcvd at 30-Jun-80 2228-PDT
Date:  1 Jul 1980 0121-EDT
From: Michael Travers <MT at MIT-XX>
Subject: Long lines in .CTL files - fix to BATCON
To: Admin.MRC at SU-SCORE
Remailed-date:  1 Jul 1980 0602-PDT
Remailed-from: Mark Crispin <Admin.MRC at SU-SCORE>
Remailed-to: [SU-SCORE]<Admin.MRC>Tops-20.DIS.46: ;

Release-4 BATCON contains new code to deal with the IOX33 error.
Unfortunatly the code does the wrong thing, resulting in the batch
job seeing the first segment of input multiple times.  This change
fixes it.


;COMPARISON OF SRC:<SYS.GALAXY>BATCON.MAC.2 AND SRC:<DEC.4.LANGUAGE>BATCON.MAC.1
;OPTIONS ARE    /E /Y /3

**** FILE SRC:<SYS.GALAXY>BATCON.MAC.2, 1-1 (0)
;<SYS.GALAXY>BATCON.MAC.2, 30-Jun-80 20:48:21, Edit by MT
;1 Make recovery from overstuffed PTY buffer work
TITLE	BATCON  --  GALAXY Batch Job Controller
**** FILE SRC:<DEC.4.LANGUAGE>BATCON.MAC.1, 1-1 (0)
TITLE	BATCON  --  GALAXY Batch Job Controller
***************

**** FILE SRC:<SYS.GALAXY>BATCON.MAC.2, 83-32 (128759) AFTER "PTYSN1:	SOUT			;OUTP"
PTYSN2:	PUSH 	P,S2		;1 Save updated pointer
	MOVX	S1,.FHSLF	;GET OUR PROCESS HANDLE
	GETER			;GET LAST ERROR CODE
**** FILE SRC:<DEC.4.LANGUAGE>BATCON.MAC.1, 83-32 (128647) AFTER "PTYSN1:	SOUT			;OUTP"
PTYSN2:	MOVX	S1,.FHSLF	;GET OUR PROCESS HANDLE
	GETER			;GET LAST ERROR CODE
***************

**** FILE SRC:<SYS.GALAXY>BATCON.MAC.2, 83-40 (129079) AFTER "PTYSN2:	PUSH 	P,S2		"
;1	HRROI	S2,.JPTYO(R)	;POINT TO OUTPUT AREA
	POP	P,S2		;1 Restore pointer
	JRST	PTYSN1		;GO OUTPUT A BUFFER
**** FILE SRC:<DEC.4.LANGUAGE>BATCON.MAC.1, 83-39 (128929) AFTER "PTYSN2:	MOVX	S1,.FHS"
	HRROI	S2,.JPTYO(R)	;POINT TO OUTPUT AREA
	JRST	PTYSN1		;GO OUTPUT A BUFFER
***************


[MRC - please forward to distribution list, if someone hasn't already
sent it in.]
-------
16-Jul-80 15:26:31-EDT,00000001479;000000000000
   --------
DATE: 16-Jul-80 15:26
FROM: SOLOMON
Subject: IMPAUF bughlt after bringing up a new FTPSER
To: Admin.MRC at SU-SCORE
cc: NCP.Alpha at SU-SCORE, Tops-20


	Problem: I took the FTPSER off XX and SRCCOM'd all the rutgers
patches in to it (and disabled XRCP, sigh, since we STILL dont have
rel 4) and brought it up on the system (at test time) and we got an
IMPAUF bughlt.

	What we did:
	First ^Eset no logins and ^ESET arpa off
	then ^Espeak to kill ftsctl
	then renamed the new version of FTPSER to <SYSTEM>
	then ^Espeak to run sys:ftsctl
	then ^Eset arpa on and ^Eset logins arpanet-terminals

	Then tested the FTPSER and  found it to be  OK, and used it  a
few times with no problems. (someone here played with the DEBUG switch
in it, but I  hardly feel that he  did anything to harm  it) All of  a
sudden-like (don't they all happen that way?) *C*R*A*S*H*.

	Looking at the  DUMP.CPY, we  saw that  it was  in IMPEI1  (in
IMPANX.MAC) (location was IMPEI1+3) and t1 had a pointer to some  CODE
rather than  data in  a buffer,  sounds like  the monitor  was  really
screwed at the time.

	I suspect that the IMP initialization  code may have a bug  in
it by not clearing  the buffer space properly,  have you heard of  the
problem?  It is not THAT crucial, but in order to have Network  sends,
we have to have the new ftpser.

	Has anyone else that you know of had this problem?

		Thanks Muchly,
				Jon Solomon
   ========
17-Jul-80 00:35:03-EDT,893;000000000000
Mail from SU-SCORE rcvd at 17-Jul-80 0034-EDT
Date: 16 Jul 1980 2134-PDT
From: Mark Crispin <Admin.MRC at SU-SCORE>
Subject: Re: IMPAUF bughlt after bringing up a new FTPSER
To: Solomon at RUTGERS
cc: NCP.Alpha at SU-SCORE, Tops-20 at RUTGERS
In-Reply-To: Your message of 16-Jul-80 1226-PDT

Jon -

     I doubt seriously that your crash had anything to do
whatsoever with the new FTPSER.  I am sure the bug is due to
various forms of section 0 jumping bugs.  Get a copy of
<ADMIN.MRC>MONITOR-BUGS.TXT and look for "section 0" in the file.
Make sure all the fixes relevant to that are in your monitor.

     Oh yeah, there are a couple of other bugs related to ARPANET
buffers.  Make sure you have those fixes too.  They're all pretty
important, and apply to release 3 as well as 4.  Many of these
fixes HAVE NOT made it into 4, so be aware of this.

-- Mark --
-------
17-Jul-80 04:33:41-EDT,4764;000000000001
Mail from SU-SCORE rcvd at 17-Jul-80 0432-EDT
Mail-from: ARPANET site UTAH-20 rcvd at 16-Jul-80 2007-PDT
Date: 16 Jul 1980 2052-MDT
From: Randy Frank <FRANK at UTAH-20>
Subject: Fix to J0NRUN/TTMSG Bug in R4
To: admin.mrc at SU-SCORE
cc: crossland at UTAH-20, frank at UTAH-20
Remailed-date: 17 Jul 1980 0128-PDT
Remailed-from: Mark Crispin <Admin.MRC at SU-SCORE>
Remailed-to: [SU-SCORE]<Admin.MRC>Tops-20.DIS.46: ;

Problem: J0NRUN Bughlts caused by job 0 (fork 0) blocking in TTMSG (for
  example when it prints out "DECSystem 20 Continued"). 

Diagnosis:  TTMSG will block for two reasons:  the SNDALL buffer is busy when
  TTMSG is entered, or that the SNDALL buffer has not been copied to individual
  network buffers (or the primary front-end for DH11 lines) before it returns.
  For ARPANET NVTs there is code to make sure that if the SNDALL buffer
  has not been copied to each individual NVT within a certain amount of
  time, then the TTMSG to that line is discarded (and as a result the SNDALL
  buffer eventually freed).  Unfortunately, this TTMSG time-out for NVTs
  only gets noticed if there is other NVT traffic present; if no other NVT
  traffic exists, the SNDALL buffer will remain tied up indefinitely.  This
  happens, for example, if a single NVT is open but suspended for some reason.

Fix:  Make the time-out for a TTMSG to an NVT noticed by the NCP fork as part
  of it's overhead cycle.  Also, make the wake-up condition (scheduler test)
  for the NCP fork consider the time-out value for releasing the SNDALL
  buffer in setting the next time that the NCP fork should run.


; IMPDV.MAC.3 & IMPDV.MAC.2 14-Jul-80 2235	PAGE 1


LINE 1, PAGE 1
1)	;<4.MONITOR-SOURCES>IMPDV.MAC.3, 14-Jul-80 22:01:26, EDIT BY CROSSLAND
1)	;MAKE SURE NCP FORK RUNS TO DISCARD TTMSG'S FOR STOPED NVT'S
1)	;PS:<4-MONITOR-SOURCES>IMPDV.MAC.2,  3-Feb-80 14:25:32, Edit by FRANK
LINE 1, PAGE 1
2)	;PS:<4-MONITOR-SOURCES>IMPDV.MAC.2,  3-Feb-80 14:25:32, Edit by FRANK


LINE 26, PAGE 11
1)		SKIPE T2,ITMSTM		; Any TTMSG's out?
1)		CALL TMSNTR		;  Yes. Flush all TTMSG's to NVT's
1)		MOVE T1,IMPNFI
LINE 26, PAGE 11
2)		MOVE T1,IMPNFI


LINE 22, PAGE 12
1)		SKIPE T2,ITMSTM		; Any TTMSG's outstanding
1)		JRST [	CAMLE T1,T2	; To be discarded before next scheduled wakeup
1)			MOVE T1,T2	; Yes.  Set as wakeup time
1)			JRST .+1]
1)		MOVEM T1,IBPTIM		; Save time to dismiss until
LINE 22, PAGE 12
2)		MOVEM T1,IBPTIM		; Save time to dismiss until


LINE 15, PAGE 16
1)		RET
LINE 15, PAGE 16
2)		SKIPN T2,ITMSTM		; Any TTMSG's out?
2)		RET			; Done if not.
2)		CAMLE T2,TODCLK		; Yes, time to flush yet?
2)		RET			; No, return.
2)		NOSKED			; Prevent anyone from changing data
2)		CALL TMSNTR		; Flush all TTMSG's to NVT's
2)		OKSKED
2)		SETZM ITMSTM		; Clear timer
2)		RET


; TTNTDV.MAC.2 & TTNTDV.MAC.1 14-Jul-80 2234	PAGE 1



LINE 1, PAGE 1
1)	;<4.MONITOR-SOURCES>TTNTDV.MAC.2, 14-Jul-80 21:48:40, EDIT BY CROSSLAND
1)	;MAKE SURE NCP FORK RUNS TO GET RID OF SNDALL'S TO STOPED NVT'S
1)	;<4.MONITOR>TTNTDV.MAC.55,  3-Jan-80 08:10:41, EDIT BY R.ACE
LINE 1, PAGE 1
2)	;<4.MONITOR>TTNTDV.MAC.55,  3-Jan-80 08:10:41, EDIT BY R.ACE


LINE 26, PAGE 7
1)		CAMGE T2,IBPTIM		;IS IT BEFORE NEXT NCP FORK WAKE UP
1)		MOVEM T2,IBPTIM		;YES.  CHANGE WAKE UP TIME
1)		POP P,T2		;RESTORE T2
LINE 26, PAGE 7
2)		POP P,T2		;RESTORE T2


LINE 38, PAGE 7
1)	; T2  contains time to discard message
1)	
1)	RESCD
1)	
1)	TMSNTR::CAMLE T2,TODCLK		;TIME TO FLUSH YET?
1)		RET			;NO, RETURN.
1)		NOSKED			;PREVENT ANYONE FROM CHANGING DATA
1)		MOVE T3,NVTPTR		;GET AOBJN COUNTER FOR NVT'S
1)	TMSNR1:	SKIPN T2,TTACTL(T3)	;GET ADDRESS OF DYNAMIC DATA
LINE 36, PAGE 7
2)	;CALLED NOSKED
2)	
2)	RESCD
2)	
2)	TMSNTR::MOVE T3,NVTPTR		;GET AOBJN COUNTER FOR NVT'S
2)	TMSNR1:	SKIPN T2,TTACTL(T3)	;GET ADDRESS OF DYNAMIC DATA


LINE 54, PAGE 7
1)		OKSKED			;YES
1)		SETZM ITMSTM		;CLEAR TIMER
1)		RET			;RETURN
1)	
LINE 49, PAGE 7
2)		RET			;YES RETURN
2)	


Note:  the above patch does not totally eliminate the possibility of J0NRUN
bughlts with respect to a TTMSG being performed by fork 0 (job 0), but
significantly reduces the possibility.  In general, the fact that TTMSG can
still block for an indeterminate amount of time (for example if multiple TTMSGs
are waiting for the SNDALL buffer) is dangerous since you really don't want
fork 0 blocking for long amounts of time.  However, the solution to this
is non-trivial, and would probably require getting around the single
SNDALL buffer (e.g., by using a pool of buffers and thus guanteeing that
TTMSG never blocked).  However, I'll leave this solution up to someone with
more ambition (DEC????).
-------
28-Jul-80 05:55:47-EDT,811;000000000001
Mail from SU-SCORE rcvd at 28-Jul-80 0555-EDT
Mail-from: ARPANET site RUTGERS rcvd at 27-Jul-80 1314-PDT
Date: 27 Jul 1980 1612-EDT
From: HEDRICK at RUTGERS
Subject: high queue reserve in 3A
To: admin.mrc at SU-SCORE
Remailed-date: 28 Jul 1980 0249-PDT
Remailed-from: Mark Crispin <Admin.MRC at SU-SCORE>
Remailed-to: [SU-SCORE]<Admin.MRC>Tops-20.DIS.46: ;

It looks to me like somebody used a TRNE where they meant TRNN, at
sched.mac:ajbals+16.  The effect seems to be to turn off the
high queue reserve iffi you ask for it to be turned on.  The code
in 4 looks right.

(I am trying an experiment where I change the definition of
high queue and low queue in AJBALS, so I consider any job with
working set > 100 pages to be low queue.  I was wondering
why it seemed to be a no-op.)
-------
 1-Aug-80 08:52:03-EDT,875;000000000000
Mail from SU-SCORE rcvd at 1-Aug-80 0851-EDT
Date:  1 Aug 1980 0546-PDT
From: Mark Crispin <Admin.MRC at SU-SCORE>
Subject: EXEC bug
To: [SU-SCORE]<Admin.MRC>Tops-20.DIS.46: ;

Problem:	(bug fix courtesy JQ Johnson@LOTS)
	Typing SET DEFAULT PLOT <cr> gets an illegal instruction
trap in EXEC.

Diagnosis:
	The BADDEF table is missing an entry for PLOT.

Solution:
	At BADDEF, replace:
BADDEF:	XCT [	CMERRX <Invalid SET DEFAULT CARDS command>
		CMERRX <Invalid SET DEFAULT PRINT command>
		CMERRX <Invalid SET DEFAULT SUBMIT command>
		CMERRX <Invalid SET DEFAULT PAPER-TAPE command>](P4)
with:
BADDEF:	XCT [	CMERRX <Invalid SET DEFAULT CARDS command>
		CMERRX <Invalid SET DEFAULT PRINT command>
		CMERRX <Invalid SET DEFAULT SUBMIT command>
		CMERRX <Invalid SET DEFAULT PAPER-TAPE command>
		CMERRX <Invalid SET DEFAULT PLOT command>](P4)
-------
 7-Aug-80 06:26:31-EDT,641;000000000001
Mail from SU-SCORE rcvd at 7-Aug-80 0626-EDT
Date:  7 Aug 1980 0321-PDT
From: Mark Crispin <Admin.MRC at SU-SCORE>
Subject: TTYSRV bug
To: [SU-SCORE]<Admin.MRC>Tops-20.DIS.46: ;

(Credit goes to Chris Ryland at MIT for finding this one)

Problem:
	Structures TTOMX and TTOCN are meaningless in TTYSRV.  At
present it doesn't seem to have any bad effects, but...(!)

Diagnosis:
	Bad definition.

Solution:
	In TTYSRV, replace:
DEFSTR TTOMX,8,1		;EXTRA BUFFERS IN USE
DEFSTR TTOCN,7,3		;COUNT OF EXTRA BUFFERS
with:
DEFSTR TTOMX,TTDAT1,8,1		;EXTRA BUFFERS IN USE
DEFSTR TTOCN,TTDAT1,7,3		;COUNT OF EXTRA BUFFERS
-------
12-Aug-80 12:00:21-EDT,500;000000000000
Mail from SU-SCORE rcvd at 12-Aug-80 1200-EDT
Date: 12 Aug 1980 0854-PDT
From: Mark Crispin <Admin.MRC at SU-SCORE>
Subject: bug in NETRBG bug check
To: [SU-SCORE]<Admin.MRC>Tops-20.DIS.49: ;

Problem:
	NETRBG bug check RET's into data

Diagnosis:
	When RLNTBF was fixed to save T1 (fixing the infamous
NETRBG bug halt problem) NETRBG wasn't told about the change

Solution:
	At RLNTER, add
		POP P,T1
after
RLNTER:	JRST [	BUG (NETRBG)	;REPORT THE PASSING OF BAD ARGUMENTS
-------
14-Aug-80 20:32:20-EDT,1557;000000000000
Mail from SU-SCORE rcvd at 14-Aug-80 2031-EDT
Date: 14 Aug 1980 1723-PDT
From: G.LYONS at SU-SCORE
Subject: Information, please
To: [SU-SCORE]<Admin.MRC>Tops-20.DIS.49: ;

Dear Systems Person:

We would like to request comments on a few possible projects we are
working on.  Would you please take the time to comment on these issues,
and let us know how you feel.


PCL

We are considering using CMU's PCL exec.  We would like to know what
your users like or dislike about this exec, and what types of things are
done with it.  What level of user at your site uses these features?  Are
there extensions that you feel are required?  What is your opinion of
the documentation available.  Is it good?  If not, how can it be
improved?


Multi-Fork Exec

Many sites are running what is known as the Multifork Exec.  There are a
few concepts which need expansion, as handling of terminal I/O, Priv
passing/control between forks, control of fork action upon invocation,
etc.  Also, are other features needed in the Exec?


TCP/IP

TCP/IP is the way the network is going.  What type of user interfaces do
you envision requiring?  Do you see a need for TCP/IP on other DEC
systems?  If so, which ones?  Any other comments on this subject would
be helpful.

Note that these are not commitments, as we are VERY short handed these
days, but a request for comments.  Please forward your comments to

	Dave Lyons	MR1-2/E37
	Digital Equipment Corp.
	200 Forrest St.
	Marlborough, MA.    01752

or	LYONS @ DEC-2136

-------
25-Aug-80 18:22:36-EDT,1344;000000000000
Mail from SRI-KL rcvd at 25-Aug-80 1822-EDT
Date: 25 Aug 1980 1431-PDT
From: LARSON at SRI-KL
Subject: file access in tops20
To: [SU-SCORE]<Admin.MRC>Tops-20.DIS.49: ;

  If you open a file for read, and are blissfully munching through
it expecting it to be stable while you do so -- you may get a rude
awakening.  While you and your friends are reading the file, I can
come along and do a straightforward OPENF on the file, map it, and
change it out from under you.  Impossible, you say?  The operating
system will protect you from such things?  Dream on... It would do
so in the days of Tenex, but TOPS-20 has changed things.
  In Tenex, frozen access to a file guaranteed that the file would
not change while it was being read.  Any number of processes could
open a file in frozen read mode, and they would see a stable file.
Frozen write access allowed no other writers, and disallowed other
processes from reading the frozen file (to protect them aganst the
changing data).
  In TOPS-20 a frozen file is openable by at most one user writing
the file, but by any number of users reading the file.

  In short:
  Tenex frozen access allows
	many readers  OR  one writer
  TOPS-20 frozen access allows
	many readers  AND  one writer

  It seems to me that DEC blew it with this change.  Opinions?
	Alan
-------
29-Aug-80 20:04:41-EDT,787;000000000000
Mail from SU-SCORE rcvd at 29-Aug-80 2004-EDT
Date: 29 Aug 1980 1656-PDT
From: Eric Schoen <G.SCHOEN at SU-SCORE>
Subject: bug in CHKJFN for PTYs
To: [SU-SCORE]<Admin.MRC>Tops-20.DIS.49: ;

Contrary to its documentation, CHKJFN can destroy AC2.  If and only
if you call CHKJFN with on a PTY, and if and only if you are NOT 
enabled (this is why SYSJOB works), CHKJFN calls PTCHKA, which clobbers
2 (leaves the job number in 2, where the address of the dynamic data
belongs).  This bug is not exercised anyplace in the DEC monitor, but
was tickled by Ethernet modifications made to Sumex's monitor.  The solution
is to protect ac2 within PTCHKA (in module FILMSC).  The code is faulty
in both rel 3A and rel 4.

   Frank Gilmurray and Eric Schoen
   Sumex-AIM

-------
 5-Sep-80 04:46:02-EDT,268;000000000000
Mail from SU-SCORE rcvd at 5-Sep-80 0446-EDT
Date:  5 Sep 1980 0142-PDT
From: Mark Crispin <Admin.MRC at SU-SCORE>
Subject: bug in ^ESEND
To: [SU-SCORE]<Admin.MRC>Tops-20.DIS.50: ;

Insert a CONFIRM after the CMERRX at DETSND+5.  ^Esend is missing it.
-------
 5-Sep-80 15:48:25-EDT,892;000000000000
Mail from SU-SCORE rcvd at 5-Sep-80 1548-EDT
Date:  5 Sep 1980 1242-PDT
From: g.Meyers at SU-SCORE (Harris A. Meyers)
Reply-to: Meyers@SRI-KL
Subject: bug in dluser
To: [SU-SCORE]<Admin.MRC>Tops-20.DIS.50:

Alan and I discovered the following bug in the error routines in dluser,
it applies to ver 3, 3a, and 4.

harris

------------------------------------------------------------------------



; DLUSER.MAC.2 & DLUSER.MAC.1  5-Sep-80 1235	PAGE 1



LINE 1, PAGE 1
1)	;<3-SOURCES>DLUSER.MAC.2,  5-Sep-80 12:27:29, Edit by MEYERS
1)	;1 make the move t1,.priou at inperr+1 an moveI
1)	;<3-UTILITIES>DLUSER.MAC.10,  8-Nov-77 10:46:57, EDIT BY KIRSCHEN
LINE 1, PAGE 1
2)	;<3-UTILITIES>DLUSER.MAC.10,  8-Nov-77 10:46:57, EDIT BY KIRSCHEN


LINE 35, PAGE 16
1)		MOVEi T1,.PRIOU		;1
1)		MOVE T2,JFN
LINE 35, PAGE 16
2)		MOVE T1,.PRIOU
2)		MOVE T2,JFN

-------
 8-Sep-80 04:43:03-EDT,1203;000000000000
Mail from SU-SCORE rcvd at 8-Sep-80 0442-EDT
Mail-from: ARPANET site UTAH-20 rcvd at 4-Sep-80 2041-PDT
Date:  4 Sep 1980 1932-MDT
From: Randy Frank <FRANK at UTAH-20>
Subject: Reaper bug/misfeature
To: ADMIN.MRC at SU-SCORE
Remailed-date:  8 Sep 1980 0132-PDT
Remailed-from: Mark Crispin <Admin.MRC at SU-SCORE>
Remailed-to: [SU-SCORE]<Admin.MRC>Tops-20.DIS.51: ;

Reaper, the program to force migration of old files, has a serious misfeature.
In order to prevent files like mail.txt from being migrated (archived), it
opens them for read to make sure they've been accessed recently.  Unfortunately,
this screws up users being told they have new mail, etc.  Note this happens
even if you run reaper in the "scan only" mode (i.e., tell me about old files
but don't actually mark them for migration), which is all we use reaper for.

The obvious solution is that if you want to prevent a file from being migrated,
set the prohibit migration bit instead of opening it for read.

In REAPER.MAC at DOKEP1+5, replace the code that opens and closes the file
with the following:

	MOVX T2,.AREXM		;SET PROHIBIT MIGRATION
	MOVX T3,.ARSET
	ARCF
	POP P,T1
	RLJFN
	 JFCL
	RET
-------
 9-Sep-80 15:46:25-EDT,590;000000000000
Mail from SU-SCORE rcvd at 9-Sep-80 1546-EDT
Date:  9 Sep 1980 1244-PDT
From: Mark Crispin <Admin.MRC at SU-SCORE>
Subject: Labeled tapes on TOPS-20 question
To: [SU-SCORE]<Admin.MRC>Tops-20.DIS.51: ;

Gavin Hemphill of D.R.E.A. in Canada would like to know if "anyone
else has had bad experiences with labeled tapes.  They seem to work
fine when they don't hang all the tapes on the system (about 60% of
the time any operation having to do with a labeled tape just causes
the tapes to disappear).

He can be reached via ARPANET mail at RGSMITH@RUTGERS.

-- Mark --
-------
16-Sep-80 18:33:23-EDT,1450;000000000000
Mail from SU-SCORE rcvd at 16-Sep-80 1833-EDT
Mail-from: ARPANET site RUTGERS rcvd at 16-Sep-80 1323-PDT
Date: 16 Sep 1980 1621-EDT
From: WATROUS at RUTGERS
Subject: Disk file copy patch
To: Admin.MRC at SU-SCORE
Remailed-date: 16 Sep 1980 1527-PDT
Remailed-from: Mark Crispin <Admin.MRC at SU-SCORE>
Remailed-to: [SU-SCORE]<Admin.MRC>Tops-20.DIS.53: ;

There is still a problem with the patch supplied by Dave Bell to fix
copying a file with an even multiple of 512 pages (that is, having
page 511, or etc.).  While the BLT is shortened, preventing
extraneous pages from being copied, the PMAP is still set up to map
those non-existent pages to the destination file.  Sure those pages
don't end up in the file, but a side effect of trying to map them there
is that the long file bit (FB%LNG) gets lit.  (TVEDIT uses page 511
for it's own purposes, but refuses to edit long files.)

So, to prevent the destination file from becoming a long file you should
insert, just before the PMAP to the destination file:

	move d,endptr		; get end pointer
	camn d,endpt0		; was it changed?
	jrst dsklp2		; no, proceed with pmap
	aos d			; yes, refigure count
	sub d,desbfr		; number of words
	lsh d,-9		; number of pages
	hrr c,d			; put where it belongs
dsklp2:

Don

P.S. - Also, to avoid confusion in installing the patch, the line
reading "In DSKDIS, before the line" should read "At DSKBLT+3, before
the line".
-------
23-Sep-80 07:31:29-EDT,1450;000000000000
Mail from SU-SCORE rcvd at 23-Sep-80 0731-EDT
Mail-from: ARPANET site RUTGERS rcvd at 16-Sep-80 1323-PDT
Date: 16 Sep 1980 1621-EDT
From: WATROUS at RUTGERS
Subject: Disk file copy patch
To: Admin.MRC at SU-SCORE
Remailed-date: 23 Sep 1980 0425-PDT
Remailed-from: Mark Crispin <Admin.MRC at SU-SCORE>
Remailed-to: [SU-SCORE]<Admin.MRC>Tops-20.DIS.53: ;

There is still a problem with the patch supplied by Dave Bell to fix
copying a file with an even multiple of 512 pages (that is, having
page 511, or etc.).  While the BLT is shortened, preventing
extraneous pages from being copied, the PMAP is still set up to map
those non-existent pages to the destination file.  Sure those pages
don't end up in the file, but a side effect of trying to map them there
is that the long file bit (FB%LNG) gets lit.  (TVEDIT uses page 511
for it's own purposes, but refuses to edit long files.)

So, to prevent the destination file from becoming a long file you should
insert, just before the PMAP to the destination file:

	move d,endptr		; get end pointer
	camn d,endpt0		; was it changed?
	jrst dsklp2		; no, proceed with pmap
	aos d			; yes, refigure count
	sub d,desbfr		; number of words
	lsh d,-9		; number of pages
	hrr c,d			; put where it belongs
dsklp2:

Don

P.S. - Also, to avoid confusion in installing the patch, the line
reading "In DSKDIS, before the line" should read "At DSKBLT+3, before
the line".
-------
23-Sep-80 15:44:50-EDT,1212;000000000000
Mail from SU-SCORE rcvd at 23-Sep-80 1544-EDT
Mail-from: ARPANET site RUTGERS rcvd at 23-Sep-80 1237-PDT
Date: 23 Sep 1980 1537-EDT
From: WATROUS at RUTGERS
Subject: Extensionless file COMPILE-class bug
To: Admin.MRC at SU-SCORE
Remailed-date: 23 Sep 1980 1240-PDT
Remailed-from: Mark Crispin <Admin.MRC at SU-SCORE>
Remailed-to: [SU-SCORE]<Admin.MRC>Tops-20.DIS.53: ;

Problem:
	Trying to compile an extensionless file without specifying a
null extension fails.

Diagnosis:
	The EXEC, in trying to determine which file to compile,
checks out filnam.*.  Then it gets a JFN on the "best" file using the
extension implied by the language type of the "best" file found,
which doesn't work in the case of an extensionless file.

Solution:
	Since the EXEC's already made an exact copy of the extension
of the "best" file, use that instead of the implied extension.

In EXECCS, at GTLNG3+23, replace:
	MOVE B,SAVLNG		;RESTORE LANGUAGE
	HRROI	A,LTAB(B)	;GET EXTN FROM TABLE
with:
	MOVE A,EXTP		;USE EXTENSION WE COPIED

3 lines down, remove:
	PUSH	P,B		;SAVE THIS

and 11(octal) lines down from there, replace:
	POP	P,B		;RESTORE B
with:
	MOVE B,SAVLNG		;GET LANGUAGE TYPE
-------
29-Sep-80 07:26:08-EDT,1429;000000000000
Mail from SU-SCORE rcvd at 29-Sep-80 0725-EDT
Mail-from: ARPANET site RUTGERS rcvd at 26-Sep-80 0950-PDT
Date: 26 Sep 1980 1253-EDT
From: RGSMITH at RUTGERS
Subject: LASER PRINTERS OR EQUIVALENT
Remailed-date: 29 Sep 1980 0420-PDT
Remailed-from: Mark Crispin <Admin.MRC at SU-SCORE>
Remailed-to: [SU-SCORE]<Admin.MRC>Tops-20.DIS.53: ;

[Note from MRC: This is an edited version of a message sent to me
 by Gavin Hemphill, D.R.E.A. Canada]

	We are trying to acquire some form of laser printer
(xerographic).  At the moment we are pushing Cannon to sell us
one of the LBP-10's that they have been advertising around the
country but from the response we're getting I get the feeling
that they just don't want to sell the things whether or not you
care about the interface (we were going to build one) or support.
I have heard rumours that the University of Minnesota (not sure
about that) has modified and interfaced a teletype facimile
machine to get a 380 dot/inch device and I was wondering whether
there are any other homebrew devices like that in use around the
net.  If there are I would like to get in touch with these people
to find out what items were bought/built etc.  The eventual goal
is to acquire a report quality output device doesn't cost us
$490K up front.  If the hardware costs are right it is almost
immaterial how much time and effort is necessary get a working
device.

-------
 2-Oct-80 15:06:07-EDT,1343;000000000000
Mail from MIT-MC rcvd at 2-Oct-80 1505-EDT
Date: Thursday, 2 October 1980  14:54-EDT
From: Chris Ryland <CPR at MIT-EE>
To: Twenex-Wizards at mc
Reply-to: CPR at MIT-MC
Subject: MOUNTR lossage

We have had very poor luck with MOUNTR under R4, and I'd like to
compare notes with you folks.  Basically, after a little frobbing with
labelled tapes, MOUNTR loves to nosedive with an illegal memory write,
at seemingly random times.  Haven't really looked into the code at
all, since we don't mind just restarting it, but if no one has any
suggestions or similar experiences, I guess we'll have to bite the
bullet.  I have a sneaky suspicion it might have to do with its
DEVICE-STATUS.BIN file being mapped strangely or having non-existent
pages, or whatever, since we have been pretty careless about running a
fully R4 system (we went through several stages of R4ness before
becoming 'real', if you can call our monitors real).

Also, I've set up this alternate mailing list on MC which is a copy of
[Score]<Admin.MRC>Tops-20.dis, since it's infinitely easier to reach
you all this way (I just wasted 1/2 an hour trying to get it all right
via Score, but the load was too high there, MM wasn't very
cooperative, etc.).  I suppose that supplies me or someone with the
problem of keeping the MC list up to date.  Oh well.

 2-Oct-80 15:59:54-EDT,1603;000000000000
Mail from MIT-MC rcvd at 2-Oct-80 1559-EDT
Date:  2 Oct 1980 1236-PDT
From: Mark Crispin <Admin.MRC at SU-SCORE>
Postal-Address: 12155 Edgecliff Place; Los Altos Hills, CA 94022
Stanford-Phone: (415) 497-1407
To: CPR at MIT-MC, Twenex-Wizards at MIT-MC
In-Reply-To: Your message of 2-Oct-80 1156-PDT

Chris -

     I haven't had any problems with MOUNTR, although we don't
use labeled tapes here so it is hardly ever spoken to.  It is
reputed from several sources, both on the TOPS-20.DIS list and
off it (ie, SF Bay Area LUG meetings) that MOUNTR is inexcusibly
fragile and dies at the slightest provocation.  Some
bullet-proofing is clearly necessary.

     It is intentional that the TOPS-20.DIS list is on SCORE
instead of on MC.  I find ITS and long network delays too
unusable, and will not be responsible for keeping that copy of
the list up to date.  Not to mention the name -- "Twenex" is
unspeakably cute!

     Much more importantly is the fact that there is no control
on who gets on the list if it lives on some random ITS host.  It
would greatly hurt the utility of this list if we could not
discuss security bugs and bugfixes because some randoms have
added themselves to the list.  I don't think it is that
troublesome to mail the message to me and have me remail it; the
only times there have been delays with this have been when I've
had to edit the message (e.g. if the note to TOPS-20.DIS was
embedded in another message).

     Speaking of security bugs, I will be sending an important
fix for a security bug out shortly.

-- Mark --
-------

 2-Oct-80 16:06:02-EDT,1930;000000000000
Mail from SU-SCORE rcvd at 2-Oct-80 1605-EDT
Date:  2 Oct 1980 1254-PDT
From: Mark Crispin <Admin.MRC at SU-SCORE>
Postal-Address: 12155 Edgecliff Place; Los Altos Hills, CA 94022
Stanford-Phone: (415) 497-1407
To: [SU-SCORE]<Admin.MRC>Tops-20.DIS.54: ;

     This bug was noted in SPR 20-14575, CTCO 526.1, not to
mention having been triggered a few times at SCORE by accident.
The CTCO included a few older RNAMF% bug fixes, but neglected to
include THE fix!!!  [At least in my copy it didn't have it.]

Problem:
	The following program, where LOGIN.CMD is an existing
file, crashes the system with a SHROFD bug halt:
	MOVSI 1,(GJ%SHT!GJ%OLD)
	HRROI 2,[ASCIZ/LOGIN.CMD/]
	GTJFN%
	 0
	RNAMF%
After you get the error return from RNAMF%, just ^Z out of DDT
and run any other program.  Blam!

Diagnosis:
	The SHROFD happens because it is trying to release OFN 0.
OFN 0 is never assigned.  Examination of the JFN shows that it
isn't a JFN at all, although its FILSTS word makes it look like
an open JFN.  At the time of the crash, we are trying to CLOSF%
the JFNs that the previous fork has open because we are resetting
the fork prior to making a new one.

	The error returns in RNAMF% can jump to ERUNLD with junk
in STS.  Since ERUNLD saves STS in FILSTS(JFN), the randomness is
left there.  All that's needed is for OPNF (the sign bit) to be
set in the randomness for CLOSF% to think that there is an open
JFN there.  However, its OFN field is zero, so it attempts to
release OFN 0.  Sorry folks.

Solution:
	Go through the .RNAMF routine, and fix every error return
to do MOVE STS,FILSTS(JFN) before any unlocking calls.  Probably
the safest thing to do (what I did) was to find every POP P,JFN
and put the MOVE STS,FILSTS(JFN) after it.  I don't know what to
tell you folks who don't have sources, although presumably DEC
will issue a corrected version of the CTCO shortly.
-------
 2-Oct-80 16:39:59-EDT,855;000000000000
Mail from MIT-MC rcvd at 2-Oct-80 1639-EDT
Date:  2 Oct 1980 1600-EDT
From: Jon Solomon <Solomon at RUTGERS>
Subject: Re: MOUNTR lossage
To: CPR at MIT-MC
cc: Twenex-Wizards at MIT-MC, Solomon at RUTGERS
In-Reply-To: Your message of 2-Oct-80 1505-EDT


	I have seen MOUNTR die only when some other process under SYSJOB
has the MAGTAPE it wants opened. We tend to like to do Prints off magtape
for the IBM-370 which occupis a space in our machine room. The trouble
occurs when the operator sets the tape drive available before stopping
the Print queue associated with it. MOUNTR and LPTSPL both compete for the
drive, and MOUNTR crashes.

	Chris, Some time when you can get the machine to yourself, you
might try deleting the DEVICE-STATUS.BIN file and re-creating it, though
I believe that it is re-created each time.

Jon
-------

 2-Oct-80 17:27:43-EDT,651;000000000000
Mail from MIT-MC rcvd at 2-Oct-80 1727-EDT
Date: Thursday, 2 October 1980  16:57-EDT
From: Chris Ryland <CPR at MIT-EE>
To: SOLOMON at RUTGERS
Reply-to: CPR at MIT-MC
cc: Twenex-Wizards at mc
Subject: twenex-wizards mailing list.

Jon: No, I'd rather not have the MC one diverge; I think it should be
used soley for what MRC is using TOPS-20.DIS now (ie, real system
maintainers).  Maybe the best policy is to send security-related
things to MRC directly, whence he can remail them 'securely', and
otherwise use the MC mailing list.  I didn't mean to brew up a storm
here, just wanted to have a simple direct way to get mail to folks.

 3-Oct-80 08:25:30-EDT,409;000000000000
Mail from MIT-MC rcvd at 3-Oct-80 0825-EDT
Date:  3 Oct 1980 0815-EDT
From: RGSMITH at RUTGERS
Subject: Re: MOUNTR lossage
To: CPR at MIT-MC, Twenex-Wizards at MIT-MC
In-Reply-To: Your message of 2-Oct-80 1506-EDT

Our version of MOUNTR is up to the same things.  I don't think the problem
is local to you as we are running a virgin copy of rel-4 and are still
having the same problem.

-------

 9-Oct-80 08:12:50-EDT,916;000000000000
Mail from SU-SCORE rcvd at 9-Oct-80 0812-EDT
Mail-from: ARPANET site RUTGERS rcvd at 9-Oct-80 0014-PDT
Date:  9 Oct 1980 0314-EDT
From: WATROUS at RUTGERS
Subject: Internal illegal instruction on I MEM
To: Admin.MRC at SU-SCORE
Remailed-date:  9 Oct 1980 0403-PDT
Remailed-from: Mark Crispin <Admin.MRC at SU-SCORE>
Remailed-to: [SU-SCORE]<Admin.MRC>Tops-20.DIS.54: ;

Problem:
	A user ^C's out of MM, does an I MEM, and gets "?Internal
illegal instruction at <pc> - Invalid source/destination designator"

Diagnosis:
	The utility routine which outputs a file name for the JFN
(%S) cleverly handles JFNS errors (the JFN in question was
restricted), then saves the error code as the output JFN.  Next time
output is tried, blam.

Solution:
	In EXECSU, make RET in literal ERCAL'ed at %S+4 a RETSKP.
This has been fixed in rel 5.
-------

[NOTE BY MRC: Even better, make the ERCAL an ERJMP.]
11-Oct-80 22:38:40-EDT,1608;000000000000
Mail from SU-SCORE rcvd at 11-Oct-80 2238-EDT
Mail-from: ARPANET site UTEXAS-20 rcvd at 11-Oct-80 1039-PDT
Date: 11 Oct 1980 1235-CDT
From: Clive Dawson <CC.Clive at UTEXAS-20>
Subject: Line printer problems
To: admin.mrc at SU-SCORE
Remailed-date: 11 Oct 1980 1934-PDT
Remailed-from: Mark Crispin <Admin.MRC at SU-SCORE>
Remailed-to: [SU-SCORE]<Admin.MRC>Tops-20.DIS.54: ;

Have you had to make any patches to LPTSPL to solve problems
like the following:

In the middle of printing a file, the LPT will get an I/O
error, after which the VFU gets totally screwed up.  It seems
that it still knows about top-of-page, but it doesn't
automatically skip the paper folds, and the header & trailer
pages are completely overstruck.  This will continue until
I manage to get the VFU reloaded.  The only way I know to
do this is to SHUTDOWN and START the printer.  I'm wondering
if the I/O errors are a hardware problem, or if perhaps
LPTSPL should automatically reload the VFU after all I/O
errors...Unfortunately this would probably screw it up more,
since the paper would need to be realigned...Anyway, this
is happening about once or twice a day, so it's getting to
be a pain.  Also, do you know a simpler way to cause the VFU
to be reloaded?     I'm wondering if this is related to
another problem with the LPT which I may have told you about--
when the system comes up for the first time after being powered
down, the LPT will start spewing paper out continuously until
you physically turn it off line.  Since it is in another room,
this might take a while to notice!

-------
25-Oct-80 21:15:28-EDT,963;000000000000
Mail from SU-SCORE rcvd at 25-Oct-80 2115-EDT
Mail-from: ARPANET site UTAH-20 rcvd at 25-Oct-80 1722-PDT
Date: 25 Oct 1980 1813-MDT
From: Randy Frank <FRANK at UTAH-20>
Subject: Galaxy questions
To: admin.mrc at SU-SCORE
Remailed-date: 25 Oct 1980 1809-PDT
Remailed-from: Mark Crispin <Admin.MRC at SU-SCORE>
Remailed-to: [SU-SCORE]<Admin.MRC>Tops-20.DIS.54: ;

(Mark, could you mail to wizard list if you don't know the answer)

Does anyone know why galaxy's spool file (primary-master-queue-file.quasar)
keeps growing in size, seemingly without bound (on our system I've seen it
as large as 1000 pages)??  Is it a (fixable) bug??  Any solutions other
than periodically deleting it and having quasar re-create it??
-------

[MRC - My PRIMARY-MASTER-QUEUE-FILE.QUASAR is only 52 pages, and
seems quite happy to stay at that size or smaller.  Perhaps
spooler and/or system crashes cause it to grow, both relatively
rare occurances at SCORE.]
27-Oct-80 20:29:09-EST,679;000000000000
Mail from SU-SCORE rcvd at 27-Oct-80 2028-EST
Mail-from: ARPANET site CIT-20 rcvd at 27-Oct-80 1316-PST
Date: 27 Oct 1980 1316-PST
From: Barry Megdal <BARRY at CIT-20>
Subject: ciphers
To: admin.mrc at SU-SCORE
Remailed-date: 27 Oct 1980 1722-PST
Remailed-from: Mark Crispin <Admin.MRC at SU-SCORE>
Remailed-to: BBoard at SU-SCORE, BBoard at SU-AI,
    [SU-SCORE]<Admin.MRC>Tops-20.DIS.54: ;

Do you know of any programs on the net (Stanford in particular) that are designed to aid in the breaking of simple alphabetic cyphers (codes)? I would 
appreciate any info you have as soon as possible, as I have a pending
application for such a program.
thanks.
-------
29-Oct-80 04:55:50-EST,1541;000000000001
Mail from SU-SCORE rcvd at 29-Oct-80 0455-EST
Mail-from: ARPANET site RUTGERS rcvd at 29-Oct-80 0139-PST
Date: 29 Oct 1980 0439-EST
From: HEDRICK at RUTGERS
Subject: monitor patch
Remailed-date: 29 Oct 1980 0147-PST
Remailed-from: Mark Crispin <Admin.MRC at SU-SCORE>
Remailed-to: [SU-SCORE]<Admin.MRC>Tops-20.DIS.54: ;

problem:  gtjfn on MT0:AAAAAAAAAAAAAAAAAAAAAAAAAAAA  (i.e. more
	  than 16 characters) returns the length of the string
	  in AC 1 instead of an error message.
diagnosis:  All the tests are there to make sure that the file
	  spec isn't too long (tape labels don't have enough
	  space for a full 39-char file name).  However no one
	  ever bothered to add an error code for it.  Thus
	  two places there are RETBAD() where there should be
	  RETBAD(error code).
cure:	  For testing we used GJFX5, which is the code used when
	  a normal file name is longer than 39 char's.  Since the
	  message mentions the number 39, this isn't right.
	  Actually, one should add to MONSYM.MAC:

.ERR (3002,gjfxxx,<File name plus extension cannot be longer than 16 characters on labelled tape>)

	  In module TAPE.MAC, at TSTSZ0+10, there is a
		RETBAD()
	  Change this to
		RETBAD(GJFXXX)
	  or GJFX5 if you don't want to regenerate the error messages.
	  At MTEXL+about 25 you will find
 		ADD T1,SVSIZ		;GET SIZE OF BOTH STRINGS
		CAILE T1,^D16		;FITS?
		RETBAD ()		;NO
		TQNN <NAMSF,EXTSF,VERSF> ;ANY STEPPING GOING ON?
	  Replace the RETBAD () with
		RETBAD (GJFXXX)
	  or GJFX5.

-------
31-Oct-80 08:26:57-EST,1322;000000000000
Mail from SU-SCORE rcvd at 31-Oct-80 0826-EST
Mail-from: ARPANET site UTAH-20 rcvd at 29-Oct-80 1236-PST
Date: 29 Oct 1980 1335-MST
From: C-GRISS at UTAH-20
Subject: Missing CONFIRM in Dir Command
To: Admin.Mrc at SU-SCORE
Remailed-date: 31 Oct 1980 0520-PST
Remailed-from: Mark Crispin <Admin.MRC at SU-SCORE>
Remailed-to: [SU-SCORE]<Admin.MRC>Tops-20.DIS.54: ;

Problem:
	@@NO PROT(esc) and friends dont wait for the CR. This causes
a problem in PCL using the NO subcommand of DIRECTORY: The subcommands
get lost and exec left in strange parse state until ^C^C typed.

Diagnosis:
	The keyword branch for the NO subcommand needs to have
a CONFIRM installed before it returns to regular subcommand parsing.

Solution:


; EXEC3.MAC.3 & EXEC3.MAC.1 29-Oct-80 1316	PAGE 1



LINE 1, PAGE 1
1)	;DSK:<4.EXEC.LOCAL>EXEC3.MAC.3 29-Oct-80 13:02:02, Edit by C-GRISS
1)	;c2: NO command of DIR not confirming
1)	;REL4:<4.EXEC.LOCAL>EXEC3.MAC.1 20-Oct-80 21:25:39, Edit by C-GRISS
LINE 1, PAGE 1
2)	;REL4:<4.EXEC.LOCAL>EXEC3.MAC.1 20-Oct-80 21:25:39, Edit by C-GRISS


LINE 36, PAGE 9
1)	noclsc,< JRST (P3) >		;c2: want a CONFRM
1)	clsc,<	 CALL (P3)		;c2:
1)		CONFIRM			;c2:
1)		RET       >		;c2:
1)	
LINE 36, PAGE 9
2)		JRST (P3)
2)	

Note: Youll need to remove the CLSC stuff.
-------
31-Oct-80 08:57:17-EST,1177;000000000000
Mail from SU-SCORE rcvd at 31-Oct-80 0857-EST
Mail-from: ARPANET site RUTGERS rcvd at 30-Oct-80 1051-PST
Date: 30 Oct 1980 1347-EST
From: WATROUS at RUTGERS
Subject: PRARG interface bug in EXEC
To: Admin.MRC at SU-SCORE, King at CMU-20C
cc: Remarks at RUTGERS
Remailed-date: 31 Oct 1980 0544-PST
Remailed-from: Mark Crispin <Admin.MRC at SU-SCORE>
Remailed-to: [SU-SCORE]<Admin.MRC>Tops-20.DIS.54: ;

Problem:
	A user compiles a SAIL program which contains an error.  The
user has SAIL replace itself with the editor (in this case, EDIT) to
correct the problem.  The user then tells EDIT to execute the last
compile class command via the EXEC's PRARG interface.  The EXEC then
chokes on a PDL overflow.

Diagnosis:
	EXEC routines being used are eating up stack with STKVARs,
TRVARs, etc., but the user is never coming up for air (to EXEC
command level) to reinit the stack.  Lengthening the stack only
postpones the problem.

Solution:
	Since the data on the stack at CMAGN is never referenced
after that point, the stack can be reinitialized there.  At CMAGN in
EXECCS, insert the instruction:

	XCT INISTK		;throw away what's on stack
-------
11-Nov-80 00:22:28-EST,798;000000000001
Mail from SU-SCORE rcvd at 11-Nov-80 0022-EST
Date: 10 Nov 1980 2115-PST
From: g.Meyers at SU-SCORE (Harris A. Meyers)
Reply-to: Meyers@SRI-KL
Subject: RSX20F source pack
To: [SU-SCORE]<Admin.MRC>Tops-20.DIS.55:
cc: Meyers at SRI-KL

If you have received a source pack for the release of 20F that shiped with
ver 4, you might want to check directory [20,30], so far out of 2 sites
checked, our selves and Utah, both have bad files in this area. The area should
contain 3 files, TOPS20.MAC TOPS10.MAC and T1091.MAC, doing a directory of
this area will gea a read atribute error for each of those files if they are
bad.  Could you check this and let me know what you find, so we can tell weather
it is a case of 2 bad packs, or weather SDC screwed up again.

thanks
harris
-------
13-Nov-80 07:25:46-EST,777;000000000000
Mail from SU-SCORE rcvd at 13-Nov-80 0725-EST
Date: 13 Nov 1980 0417-PST
From: Mark Crispin <Admin.MRC at SU-SCORE>
Postal-Address: 12155 Edgecliff Place; Los Altos Hills, CA 94022
Stanford-Phone: (415) 497-1407
Subject: GLXLIB.MEM
To: [SU-SCORE]<Admin.MRC>Tops-20.DIS.55: ;

Has anybody seen or heard of this file?  According to the DEC Galaxy
person at DECUS, it was distributed with the documentation for the
TOPS-10 release, and was also supposed to be on the release 4 SWSKIT
tape.  I don't have it, although it's possible it came out on a
different tape from what I got.  If anybody can make this file
available (DEC folks?) or can explain why it isn't, please send a
note to Patrick Milligan (G.Milligan@SCORE) with a cc to myself.

-- Mark --
-------
13-Nov-80 13:32:49-EST,1823;000000000000
Mail from SU-SCORE rcvd at 13-Nov-80 1332-EST
Date: 13 Nov 1980 1022-PST
From: Mark Crispin <Admin.MRC at SU-SCORE>
Postal-Address: 12155 Edgecliff Place; Los Altos Hills, CA 94022
Stanford-Phone: (415) 497-1407
Subject: 32-bit leader question
To: [SU-SCORE]<Admin.MRC>Tops-20.DIS.55: ;
cc: Feinler at SRI-KL, DCAcode535 at USC-ISI, Postel at USC-ISIF,
    Geoff at DARCOM-KA

Folks -

     As we all know, DCA has scheduled the demise of 32 bit
leaders on the ARPANET at the end of this year.  According to the
best of my knowledge, SRI-KL was the last TOPS-20 system which
was running with 32 bit leaders, and they converted a few weeks
ago.  I would like to know if there is any reason user programs
should continue to worry about supporting the old 32 bit leader
operating system interface.

     In particular, I am the author/maintainer of an alternative
TELNET program to BBN TELNET (my program, colloquially called
"TN" on many systems, is 2-5 times faster and uses 55% less CPU)
which makes a runtime check for whether it is on a 32 or 96 bit
leader system and which sets up its internal data structures
accordingly.  Other programs presently under development use the
same routines.  If there is no reason for its continued existance
I would like to remove the support for 32 bit leaders entirely; I
wouldn't be able to test it any more and it will get in the way
of my adding TCP/IN support.

     I have heard rumors of private ARPANETs which may not be
joining ARPANET in the 96 bit leader transition.  Is this the
case?  Do these networks use ARPANET user software?  Are there
any TOPS-20 users of these networks who are using my TELNET
program and would they be impacted by this change?

     Thanks in advance for any information you can supply.

-- Mark --
-------
21-Nov-80 15:08:46-EST,603;000000000000
Mail from SU-SCORE rcvd at 21-Nov-80 1508-EST
Date: 21 Nov 1980 0751-PST
From: Mark Crispin <Admin.MRC at SU-SCORE>
Postal-Address: 12155 Edgecliff Place; Los Altos Hills, CA 94022
Stanford-Phone: (415) 497-1407
Subject: SPR 20-14934 answer
To: [SU-SCORE]<Admin.MRC>Tops-20.DIS.56: ;

There is a bug in the patch in the answer for SPR 20-14934.  The proper
fix for MSTDMC is to have SETOM JSSTLK(P5) not SETOM JSSTLK.  MSTDCF is
alright with SETOM JSSTLK.  They should NOT be the same routine, contrary
to what the patch says.  Read the code carefully when installing this
patch!!
-------
10-Dec-80 01:45:58-EST,000001262;000000000000
Date: 10 Dec 1980 0145-EST
From: SOLOMON
Subject: GTDIR getting garbage length in block bug..
To: watrous, TOPS-20, admin.mrc at SU-SCORE
cc: Solomon

GTDIR seems to hang the system when there is a garbaged length
in the block.

In the EXEC,  the command SET  DIRECTORY ARCHIVE-EXPIRED-FILES does  a
GTDIR to get  the info needed,  and then switches  the mode, and  uses
CRDIR to set it.  My exec didnt  bother to clear the block out  before
it did the GTDIR.

I dont know if the default EXEC has this problem, but to be paranoid,
do the following:

at DMODE: insert:
DMODE:	MOVEI B,GTDLN		;length of the GTDIR block
	MOVEM B,SEBLK+.CDLEN	;put it where monitor can find it
	SETZM SEBLK+1		; zero out first word
	HRLI B,SEBLK+1		; set up for BLT
	HRLI B,SEBLK+2		; start of BLT output
	BLT B,SEBLK+GTDLN-1	;zero out the memory

	This should be done before XARCSW is turned on in the system
exec.

	This really deserves monitor investigation...

Mark - Ever see anything like this before? A user does a 
SET DIR ARCHIVE-EXPIRED-FILES, and then gets hung. Anyone who
does systat (same as the other one I sent you) gets hung... etc
we had to reload the system because the whole fork structure was 
locked... sigh...

   ========
10-Dec-80 05:27:28-EST,1565;000000000000
Mail from SU-SCORE rcvd at 10-Dec-80 0527-EST
Mail-from: ARPANET site RUTGERS rcvd at 9-Dec-80 2246-PST
Date: 10 Dec 1980 0145-EST
From: Jon Solomon <Solomon at RUTGERS>
Subject: GTDIR getting garbage length in block bug..
To: watrous at RUTGERS, TOPS-20 at RUTGERS, admin.mrc at SU-SCORE
cc: Solomon at RUTGERS
Remailed-date: 10 Dec 1980 0220-PST
Remailed-from: Mark Crispin <Admin.MRC at SU-SCORE>
Remailed-to: [SU-SCORE]<Admin.MRC>Tops-20.DIS.56: ;

GTDIR seems to hang the system when there is a garbaged length
in the block.

In the EXEC,  the command SET  DIRECTORY ARCHIVE-EXPIRED-FILES does  a
GTDIR to get  the info needed,  and then switches  the mode, and  uses
CRDIR to set it.  My exec didnt  bother to clear the block out  before
it did the GTDIR.

I dont know if the default EXEC has this problem, but to be paranoid,
do the following:

at DMODE: insert:
DMODE:	MOVEI B,GTDLN		;length of the GTDIR block
	MOVEM B,SEBLK+.CDLEN	;put it where monitor can find it
	SETZM SEBLK+1		; zero out first word
	HRLI B,SEBLK+1		; set up for BLT
	HRRI B,SEBLK+2		; start of BLT output
	BLT B,SEBLK+GTDLN-1	;zero out the memory

	This should be done before XARCSW is turned on in the system
exec.

	This really deserves monitor investigation...

Mark - Ever see anything like this before? A user does a 
SET DIR ARCHIVE-EXPIRED-FILES, and then gets hung. Anyone who
does systat (same as the other one I sent you) gets hung... etc
we had to reload the system because the whole fork structure was 
locked... sigh...

-------
10-Dec-80 09:39:06-EST,451;000000000000
Mail from MIT-AI rcvd at 10-Dec-80 0939-EST
Date: Wednesday, 10 December 1980  09:22-EST
From: Chris Ryland <CPR at MIT-EECS>
To: Jon Solomon <Solomon at RUTGERS>
Reply-to: CPR at MIT-MC
Cc: TOPS-20 at RUTGERS, admin.mrc at SU-SCORE, watrous at RUTGERS
Subject: GTDIR getting garbage length in block bug..

DEC took out those commands from the standard exec for a good reason:
the monitor is definitely buggy when it comes to such things.

12-Dec-80 03:26:08-EST,917;000000000000
Mail from MIT-XX rcvd at 12-Dec-80 0326-EST
Date: 12 Dec 1980 0323-EST
From: JIS at MIT-XX
Subject: Re: GTDIR getting garbage length in block bug..
To: Solomon at RUTGERS, watrous at RUTGERS, TOPS-20 at RUTGERS,
    admin.mrc at SU-SCORE
In-Reply-To: Your message of 10-Dec-80 0145-EST

We have seen this bug on MIT-EE. The problem is that the directory lock for
the directory in question is being left locked. Then slowly (or quickly
if you users like to systat) every job hangs waiting for the lock to become
free. We solved the problem in the exec, by simply removing the 
archive-expired-files command (the set command...) being that we don't
run the archive virtual disk system on MIT-EE anyway. 

The real problem is in GTDIR, and is on my queue of things to look at,
so unless someone comes up with the problem sooner, I will mail out my
fix (if and when I work on it).

				-Jeff
-------
13-Dec-80 02:30:02-EST,629;000000000000
Mail from SU-SCORE rcvd at 13-Dec-80 0229-EST
Date: 12 Dec 1980 2327-PST
From: Mark Crispin <Admin.MRC at SU-SCORE>
Postal-Address: 12155 Edgecliff Place; Los Altos Hills, CA 94022
Stanford-Phone: (415) 497-1407
Subject: Re: GTDIR getting garbage length in block bug..
To: JIS at MIT-XX, Solomon at RUTGERS, watrous at RUTGERS, TOPS-20 at RUTGERS
In-Reply-To: Your message of 12-Dec-80 0023-PST

The problem is obviously something like a page fault is occuring while the
directory lock is locked.  Probably both the length and things like the
string pointer should be validated before locking the directory.
-------
14-Dec-80 02:03:10-EST,2065;000000000001
Mail from SU-SCORE rcvd at 14-Dec-80 0202-EST
Mail-from: ARPANET site RUTGERS rcvd at 13-Dec-80 2252-PST
Date: 14 Dec 1980 0127-EST
From: HEDRICK at RUTGERS
Subject: for Tops-20 dist list: problem with DDT in extended addresses
To: admin.mrc at SU-SCORE
Remailed-date: 13 Dec 1980 2254-PST
Remailed-from: Mark Crispin <Admin.MRC at SU-SCORE>
Remailed-to: [SU-SCORE]<Admin.MRC>Tops-20.DIS.58: ;

I am now playing with an extended-addressing version of Lisp.  I
find that most of the extended addressing support is in fairly
good shape.  (In particular, you can create private pages, despite
what some people seem to think.)  DDT works surprisingly well.
But it has this one annoying problem:  when doing $X, it 
interprets location 10,,1 as AC 1.  DDT's address calculation is 
quite complex.  Unfortunately so is the hardware's.  Someone
really needs to rewrite the appropriate routine in DDT, following
the flowcharts for the hardware exactly.  Then we can be sure it
works.  I settled for solving this one problem.  Note that the code
is complicated by the fact that global address 1,,1 is AC1.  Section
1 is special.  (come on guys...)

Here is the patch:

File 1)	DSK:DDT.MAC[4,211]	created: 0054 14-Dec-1980
File 2)	OLD:DDT.MAC[4,211]	created: 0418 30-Aug-1980

1)94		JRST	CIFIW4		;[CLH]
1)	;HERE IF GLOBAL ADDRESSING
1)		TLZ	T,770000	;[CLH] LEAVE ONLY EFIW Y FIELD
1)		HLLZ	S,T		;[CLH] UPDATE S TO NEW CURRENT SECTION
1)		TLNN	T,007776	;[CLH] IF IN SECTION ZERO OR 1
1)		JRST	CIFIW6		;[CLH] TREAT AS AC IF 0 TO 17 IN RH
1)		JRST	CIFIW7		;[CLH] ELSE IT IS NOT AN AC
1)	;HERE IF LOCAL ADDRESSING
1)	CIFIW4:	HLL	T,S		;THEN E STAYS IN LOCAL SECTION
****
2)94	CIFIW4:	HLL	T,S		;THEN E STAYS IN LOCAL SECTION
**************
1)94		JRST	CIFIW6		;AND GO CHECK FOR AC
1)	;CHECK IFIW INDIRECTION
****
2)94	;CHECK IFIW INDIRECTION
**************
1)94	CIFIW7:	POP	P,R		;GET BACK ORIGINAL WORD
1)		TXNN	R,@		;IFIW I BIT ON?
****
2)94		POP	P,R		;GET BACK ORIGINAL WORD
2)		TXNN	R,@		;IFIW I BIT ON?
**************
-------
15-Dec-80 04:29:53-EST,687;000000000000
Mail from SU-SCORE rcvd at 15-Dec-80 0429-EST
Date: 15 Dec 1980 0110-PST
From: Mark Crispin <Admin.MRC at SU-SCORE>
Postal-Address: 12155 Edgecliff Place; Los Altos Hills, CA 94022
Stanford-Phone: (415) 497-1407
Subject: NVTs hung in CLZW wait
To: [SU-SCORE]<Admin.MRC>Tops-20.DIS.58: ;

Has anybody come up with a fix for this problem yet?  I recently was
forced to reboot SCORE after a perfectly good run because SCORE ran
out of NVTs, all of which were hung in CLZW.  The problem seems to
be that NVTDET somehow fails to completely flush the NVT.  At the
very least, is there a stopgap fix to completely flush all NVTs when
the network is cycled?

-- Mark --
-------
15-Dec-80 23:54:38-EST,1121;000000000000
Mail from MIT-MC rcvd at 15-Dec-80 2354-EST
Date: 15 Dec 1980 2044-PST
From: ROODE at SRI-KL (David Roode)
Subject: directory disk allocation definition
To: twenex-wizards at MIT-MC

I think that the overhead page used for each file in a directory
should be charged to that directory's disk allocation.  Otherwise,
there is too much uncertainty in enforcement of disk allocations.
A pathological user could use up a lot of disk space by creating
0 page files, and be charged for none.  More commonly, there are
efficiencies in storing a given amount of data in large files
versus storing the same amount of date in a greater number
of smaller files.  Masking the pointer pages from
the user's view encourages him to disregard this efficiency.
Today I encountered a user who had inherited a directory which
had so many files of one page each that he was up against the
release 3 limit in files per directory.

Besides wasting disk space, small files cause backup
programs like dumper which do a full filesystem scan to take 
an increased amount of time to backup the same amount
of data.
-------

16-Dec-80 00:20:03-EST,468;000000000000
Mail from MIT-MC rcvd at 16-Dec-80 0019-EST
Date: 15 Dec 1980 2110-PST
From: Mark Crispin <Admin.MRC at SU-SCORE>
Postal-Address: 12155 Edgecliff Place; Los Altos Hills, CA 94022
Stanford-Phone: (415) 497-1407
Subject: Re: directory disk allocation definition
To: ROODE at SRI-KL, twenex-wizards at MIT-MC
In-Reply-To: Your message of 15-Dec-80 2044-PST

2I think it is insane to charge users for index pages.  My users
would never stand for it.
-------

16-Dec-80 10:02:06-EST,1562;000000000000
Mail from MIT-MC rcvd at 16-Dec-80 1001-EST
Date: Tuesday, 16 December 1980  09:52-EST
From: Chris Ryland <CPR at MIT-EECS>
To: ROODE at SRI-KL (David Roode)
Reply-to: CPR at MIT-MC
Cc: twenex-wizards at MIT-MC
Subject: directory disk allocation definition

    From: ROODE at SRI-KL (David Roode)
    Re:   directory disk allocation definition
    I think that the overhead page used for each file in a directory
    should be charged to that directory's disk allocation.  Otherwise,
    there is too much uncertainty in enforcement of disk allocations.
As MRC pointed out, there are political problems with changing this
definition this late in the Tops-20 game.  However, I agree in theory
with you, since those pages actually belong to a directory.

    Besides wasting disk space, small files cause backup
    programs like dumper which do a full filesystem scan to take 
    an increased amount of time to backup the same amount
    of data.
Well, but all you're saying is that more files are worse than less
files, which is certainly true.  I doubt if one-page files have
anything to do with DUMPER's problems, which really stem from its
desire to use RCDIR (VEERRRY SLOOOW) stepping and GNJFN stepping
within a directory.  We still can't blame DEC for doing it this way,
though, since it IS modular and all that rot, but it would be quite a
bit faster if it did the scan by mapping the directories itself and
grovelling therefrom.  Oh well, it would also be nice if DEC would
rewrite TOPS-20 and make it capability-based.

16-Dec-80 17:07:41-EST,1253;000000000000
Mail from MIT-MC rcvd at 16-Dec-80 1707-EST
Date: 16 Dec 1980 1357-PST
From: ROODE at SRI-KL (David Roode)
Subject: Re: directory disk allocation definition
To: CPR at MIT-MC
cc: TWENEX-Wizards at MIT-MC
In-Reply-To: Your message of 16-Dec-80 0657-PST

I notice that it is much quicker to build a left half word
of a directory number from a STDEV and then step
the right half word from one on up to some
extra large possible high directory number (old LSTDRN)
doing DIRST's along the way to verify existence of a directory
and obtain the string than it is to use stepping RCDIR.
This doesn't seem to lack much in modularity to me.  LSTDRN
being accessible would be nice.

The speed advantage does not hold as well on a maximally
subdirectoried system.  Simply splitting <root-directory>
into 26 top level directories with an approximately
even distribution of user directories seems to speed a stepping
RCDIR tremendously.  I suspect it speeds LOTS of other operations
as well.  I bet most sites that categorize users and
create them as subdirectories of the categories do not have
enough categories to gain this advantage.

In any event, the method of the first paragraph is much
faster for stepping directories.
-------

16-Dec-80 20:40:30-EST,2329;000000000000
Mail from MIT-MC rcvd at 16-Dec-80 2040-EST
Date: 16 Dec 1980 2017-EST
From: Dan Tappan <TAPPAN at BBNG>
Sender: TAPPAN at BBNG
Subject: SET DIRECTORY ARCHIVE-ONLINE-EXPIRED-FILES Bug
To:   TWENEX-WIZARDS at MC

 I got hit with this today, It looks to me like the problem 
(in the monitor) is that when the EXEC passes it the garbage 
GTDIR block, it is looking in it for pointers to where to store
various things, since its fairly full of randomness (including
pointers to code space) this caused an ILMWR trap out of the
code, leaving the directory still locked.
I fixed it by putting in checks to be sure that all pointers are
legit before doing anything (SRCCOM follows). I've tested it out
and it seems to work (anyway the command dies with an ILMWR rather
than hanging things up, which is the correct response)

____


; JSYSA.MAC.5 & JSYSA.MAC.4 16-Dec-80 2012	PAGE 1



LINE 12, PAGE 49
1)	
1)	;;; At this point, (before we actually lock down the directory)
1)	;;; We must make sure that all the pointers point to acessable
1)	;;; places, this is so an ILMRF won't zap us with the directoy still
1)	;;; locked
1)		XCTU [MOVES 0(Q3)]	; Make sure block is writable
1)		MOVE A,Q3		; And that
1)		ADDI T1,(Q2)		; The last word
1)		XCTU [MOVES 0(A)]	; Is also
1)		CAIGE Q2,.CDUGP		; Do we want groups?
1)		 JRST GTDIR1		; No, skip next tests
1)		UMOVE A,.CDUGP(Q3)	; get pointer
1)		XCTU [MOVES 0(A)]	; test for accesability
1)		CAIGE Q2,.CDDGP		; directory groups?
1)		 JRST GTDIR1		; no
1)		UMOVE A,.CDDGP(Q3)
1)		XCTU [MOVES 0(A)]	; Check it out
1)		CAIGE Q2,.CDCUG		; inferior groups?
1)		 JRST GTDIR1		; no
1)		UMOVE A,.CDCUG(Q3)	;..
1)		XCTU [MOVES 0(A)]	; check it out
1)		CAIGE Q2,.CDDAC		; Account?
1)		 JRST GTDIR1		; No
1)		UMOVE A,.CDDAC(Q3)	; Get pointer
1)		XCTU [MOVES 0(A)]	; and be sure is allowed
1)	;;; Made it, all pointers are valid
1)	GTDIR1:	SETZ P1,		;INITIALIZE PRIVILEGE FLAG
1)		UMOVE A,1		;GET DIRECTORY NUMBER
LINE 12, PAGE 49
2)		SETZ P1,		;INITIALIZE PRIVILEGE FLAG
2)		UMOVE A,1		;GET DIRECTORY NUMBER


LINE 78, PAGE 49
1)		LOAD B,DRPSW,(A)	;GET POINTER TO NAME STRING
1)		ADD B,DIRORA		;MAKE IT ABSOLUTE
LINE 52, PAGE 49
2)	GTDIR1:	LOAD B,DRPSW,(A)	;GET POINTER TO NAME STRING
2)		ADD B,DIRORA		;MAKE IT ABSOLUTE

-------

18-Dec-80 10:24:50-EST,2017;000000000000
Mail from MIT-MC rcvd at 18-Dec-80 1024-EST
Date: 18 Dec 1980 1012-EST
From: TAPPAN at BBND
Subject: Re: Previous bugfix to GTDIR%
To:   twenex-wizards at MC

 A slightly better version follows, it is better in that the
checks don't affect the "Get system defaults" function,
which can legally have grabage in some of those areas.

----


; JSYSA.MAC.7 & JSYSA.MAC.3 18-Dec-80 0956	PAGE 1




LINE 15, PAGE 49
1)	
1)	;;; At this point, (before we actually lock down the directory)
1)	;;; We must make sure that all the pointers point to acessable
1)	;;; places, this is so an ILMRF won't zap us with the directoy still
1)	;;; locked
1)		UMOVE B,C		; Get password pointer
1)		SKIPE B			; If non-zero
1)		 XCTU [MOVES 0(B)]	; Be sure the first word, at least, is writable
1)		XCTU [MOVES 0(Q3)]	; Make sure block is writable
1)		MOVE B,Q3		; And that
1)		ADDI B,(Q2)		; The last word
1)		XCTU [MOVES 0(B)]	; Is also
1)		CAIGE Q2,.CDUGP		; Do we want groups?
1)		 JRST GTDIR1		; No, skip next tests
1)		UMOVE B,.CDUGP(Q3)	; get pointer
1)		XCTU [MOVES 0(B)]	; test for accesability
1)		CAIGE Q2,.CDDGP		; directory groups?
1)		 JRST GTDIR1		; no
1)		UMOVE B,.CDDGP(Q3)
1)		XCTU [MOVES 0(B)]	; Check it out
1)		CAIGE Q2,.CDCUG		; inferior groups?
1)		 JRST GTDIR1		; no
1)		UMOVE B,.CDCUG(Q3)	;..
1)		XCTU [MOVES 0(B)]	; check it out
1)		CAIGE Q2,.CDDAC		; Account?
1)		 JRST GTDIR1		; No
1)		UMOVE B,.CDDAC(Q3)	; Get pointer
1)		XCTU [MOVES 0(B)]	; and be sure is allowed
1)	;;; Made it, all pointers are valid
1)	GTDIR1:	STKVAR <GTDINO>
1)		MOVEM A,GTDINO		;SAVE DIRECTORY NUMBER
LINE 15, PAGE 49
2)		STKVAR <GTDINO>
2)		MOVEM A,GTDINO		;SAVE DIRECTORY NUMBER


; JSYSA.MAC.7 & JSYSA.MAC.3 18-Dec-80 0956	PAGE 2



LINE 81, PAGE 49
1)		LOAD B,DRPSW,(A)	;GET POINTER TO NAME STRING
1)		ADD B,DIRORA		;MAKE IT ABSOLUTE
LINE 52, PAGE 49
2)	GTDIR1:	LOAD B,DRPSW,(A)	;GET POINTER TO NAME STRING
2)		ADD B,DIRORA		;MAKE IT ABSOLUTE

____

/Dan
-------

18-Dec-80 16:52:11-EST,2221;000000000000
Mail from SU-SCORE rcvd at 18-Dec-80 1651-EST
Mail-from: ARPANET site MIT-MC rcvd at 18-Dec-80 0717-PST
Date: 18 Dec 1980 1012-EST
From: TAPPAN at BBND
Subject: Re: Previous bugfix to GTDIR%
To:   twenex-wizards at MC
Remailed-date: 18 Dec 1980 1341-PST
Remailed-from: Mark Crispin <Admin.MRC at SU-SCORE>
Remailed-to: [SU-SCORE]<Admin.MRC>Tops-20.DIS.58: ;

 A slightly better version follows, it is better in that the
checks don't affect the "Get system defaults" function,
which can legally have grabage in some of those areas.

----


; JSYSA.MAC.7 & JSYSA.MAC.3 18-Dec-80 0956	PAGE 1




LINE 15, PAGE 49
1)	
1)	;;; At this point, (before we actually lock down the directory)
1)	;;; We must make sure that all the pointers point to acessable
1)	;;; places, this is so an ILMRF won't zap us with the directoy still
1)	;;; locked
1)		UMOVE B,C		; Get password pointer
1)		SKIPE B			; If non-zero
1)		 XCTU [MOVES 0(B)]	; Be sure the first word, at least, is writable
1)		XCTU [MOVES 0(Q3)]	; Make sure block is writable
1)		MOVE B,Q3		; And that
1)		ADDI B,(Q2)		; The last word
1)		XCTU [MOVES 0(B)]	; Is also
1)		CAIGE Q2,.CDUGP		; Do we want groups?
1)		 JRST GTDIR1		; No, skip next tests
1)		UMOVE B,.CDUGP(Q3)	; get pointer
1)		XCTU [MOVES 0(B)]	; test for accesability
1)		CAIGE Q2,.CDDGP		; directory groups?
1)		 JRST GTDIR1		; no
1)		UMOVE B,.CDDGP(Q3)
1)		XCTU [MOVES 0(B)]	; Check it out
1)		CAIGE Q2,.CDCUG		; inferior groups?
1)		 JRST GTDIR1		; no
1)		UMOVE B,.CDCUG(Q3)	;..
1)		XCTU [MOVES 0(B)]	; check it out
1)		CAIGE Q2,.CDDAC		; Account?
1)		 JRST GTDIR1		; No
1)		UMOVE B,.CDDAC(Q3)	; Get pointer
1)		XCTU [MOVES 0(B)]	; and be sure is allowed
1)	;;; Made it, all pointers are valid
1)	GTDIR1:	STKVAR <GTDINO>
1)		MOVEM A,GTDINO		;SAVE DIRECTORY NUMBER
LINE 15, PAGE 49
2)		STKVAR <GTDINO>
2)		MOVEM A,GTDINO		;SAVE DIRECTORY NUMBER


; JSYSA.MAC.7 & JSYSA.MAC.3 18-Dec-80 0956	PAGE 2



LINE 81, PAGE 49
1)		LOAD B,DRPSW,(A)	;GET POINTER TO NAME STRING
1)		ADD B,DIRORA		;MAKE IT ABSOLUTE
LINE 52, PAGE 49
2)	GTDIR1:	LOAD B,DRPSW,(A)	;GET POINTER TO NAME STRING
2)		ADD B,DIRORA		;MAKE IT ABSOLUTE

____

/Dan
-------

23-Dec-80 13:46:21-EST,2735;000000000000
Mail from RADC-TOPS20 rcvd at 23-Dec-80 1345-EST
Date: 23 Dec 1980 1325-EST
From: Kevin Paetzold <PAETZOLD at RADC-TOPS20>
To: R4-Bugs at DEC-2136, G.Cower at SU-SCORE, Baker at AFSC-HQ,
    Perilli at AFSC-HQ, Allen at BBND, EONeil at BBND, JBorchek at BBNG,
    Tappan at BBNG, G.Milligan at SU-SCORE, Lindblad at CIT-20,
    King at CMU-20C, G.daCruz at SU-SCORE, G.SLogin at SU-SCORE,
    Kincl at UTAH-20, G.LCampbell at SU-SCORE, Lyons at DEC-MARLBORO,
    G.Miller at SU-SCORE, RGSmith at RUTGERS, G.Eldre at SU-SCORE,
    CPR at MIT-XX, JIS at MIT-XX, MT at MIT-XX, Wallace at MIT-XX,
    NCP.Pine at SU-SCORE, Rowe at NBS-10, Mittal at RUTGERS,
    GeoffM at RAND-AI, Mike at RAND-AI, Hedrick at RUTGERS,
    TOPS-20 at RUTGERS, Admin.MRC at SU-SCORE, Admin.Bosack at SU-SCORE,
    Admin.JQJ at SU-SCORE, Admin.Lougheed at SU-SCORE, Gilmurray at SUMEX-AIM,
    Schoen at SUMEX-AIM, Sweer at SUMEX-AIM, Larson at SRI-KL,
    Meyers at SRI-KL, Clive at UTEXAS, CTaylor at USC-ISIF,
    Dale at USC-ISIB, Koda at USC-ISID, LSims at USC-ISIE,
    Thompson at USC-ECL, Frank at UTAH-20, C-Griss at UTAH-20
Reply-to: Paetzold at RADC-TOPS20
Telephone: 315-330-4013 AV-587
Subject: TOPS20AN Telnet IP/SYNCH bug
Message-ID: 11690775042.5.240.53008 at RADC-TOPS20

I have found a solution for the Telnet IP/SYNCH bug.  This bug has been in
existence before release 4.  The problems stems from the fact that if a DECR
macro is used on a field containing zero it will mess up other fields.  The
solution was to use a load, aos/sos, stor sequence.

File 1)	DSK:TTNTDV.MAC[4,55]	created: 0848 23-Dec-1980
File 2)	DSK:TTNTDV.OLD[4,55]	created: 1616 21-May-1980

1)1	;<DEC.R4.MONITOR>TTNTDV.MAC.4, 23-Dec-80 08:48:00, Edit by PAETZOLD
1)	;dont use decr and incr on ptitc as they get confused and trash rest of word
1)	;<PAETZOLD.REL4.MSOURCE>TTNTDV.MAC.3, 21-May-80 16:16:29, Edit by PAETZOLD
****
2)1	;<PAETZOLD.REL4.MSOURCE>TTNTDV.MAC.3, 21-May-80 16:16:29, Edit by PAETZOLD
**************
1)9	NVTDSC::			;[KWP] INC COUNTS -1, SYNC CHAR COUNTS 1
1)		LOAD Q1,PTITC,(T2)	;[KWP] GET INS/SYNCH COUNT
1)		SOJ Q1,			;[KWP] DECREMENT IT
1)		STOR Q1,PTITC,(T2)	;[KWP] STORE THE NEW PTITC
1)		LOAD Q1,PTNTI,(T2)	;GET INPUT UNIT
****
2)9	NVTDSC::DECR PTITC,(T2)		;INS COUNTS -1, SYNC CHAR COUNTS 1
2)		LOAD Q1,PTNTI,(T2)	;GET INPUT UNIT
**************
1)32	NVTCL1:				;[KWP] SYNCH COUNT 1, INS COUNTS -1
1)		PUSH P,T1		;[KWP] SAVE T1
1)		LOAD T1,PTITC,(T2)	;[KWP] GET COUNT
1)		AOJ T1,			;[KWP] ADJUST IT
1)		STOR T1,PTITC,(T2)	;[KWP] SAVE NEW COUNT
1)		POP P,T1		;[KWP] GET T1 BACK
1)		RET
****
2)32	NVTCL1:	INCR PTITC,(T2)		;SYNC COUNTS 1, INS COUNTS -1
2)		RET
**************
   --------