
Mon Dec 20 09:26:48 1976

replaced opr in /bin.  added sites 1700 math enad 67 and test (xx)

Mon Dec 20 14:11:07 1976

inserted 1700 in /dev as an alias for ttym.  chmod 600, chown daemon.

Thu Dec 30 13:47:29 1976

Modified DH11 driver (dh.c) to handle up to 16 DH11's (256 ports).
di.c removed from system.

DEC believes that TU16 hangup is a design flaw.  Attempting to
write 45000 (10) byte records causes the controller to hang.  Larger
sizes cause OPI (operation incomplete) error.  TU16 only fails
at load point.

tty.c modified to allow mode "NL3" to force automatic suspend output
on output of new-line.  CTL-F (ack) also treated as ESC in cooked mode.

dh.c - fixed tty getting hung on close; reset t_state after wflushtty 
call.

ps.c, init.c were modified to handle 64 tty devices (tty0 - tty9,
ttya - ttyz, ttyA - ttyZ, tty+, tty-, tty=).

Also added special files, "ttyx - ttyM" (makes 49 total ttys) to /dev.

--ghg 12/30/76

Sat Jan  1 15:14:01 1977

The system variables "_rootdev", "_swapdev", "_swplo", and "_nswap"
were moved from "/usr/sys/conf/conf.c" to "/usr/sys/conf/low.s"
in order to give them absolute locations.  This facilitates front
panel patching them at boot-up time in case of a rootdev/swapdev
hardware failure.  On boot-up, the system should be HALTed as soon
as memory management is enabled (22 bit addr light comes on for 11/70
or 18 bit addr light on for 11/45).  The new values may be inserted
via the front panel switches and the system CONTINUED.  The high
order bytes of "_rootdev" and "_swapdev" are the major device
numbers and the low bytes are the minor device numbers (see a listing
of "/dev" for these numbers).  Currently hp0 = 3000 (6/0) and
hs0 = 02410 (5/8).

Variable	Address		Current contents (root = rp04 swap = rs04)
--------	-------		------------------------------------------
_rootdev	150		003000
_swapdev	152		002410
_swplo		154		000001
_nswap		156		003777 (2047 decimal)

INCASE OF RS04 hardware failure the swapdev may be moved to hp0 with
the following boot up core patches.

ADDR	NEW VALUE
----	---------
152	003000			/makes swapdev on hp0
154	007640			/swap area starts at block 4000.
156	011610			/5000. blocks for swap (this patch not needed
				/unless swap space is to be increased.

Currently, blocks 4000. - 9613 on hp0 are not used and may be used
for swap area incase of RS04 hardware failure.

--ghg 1/1/76


Tue Jan  4 15:14:44 1977

DEC installed 3rd DH-11.  UNIX now runs 49 terminls.  recompiled
login with "-i" flag for separate i & d space to save swap space.
-ghg 1/4/76

Wed Jan  5 09:00:17 1977

"opr" documentation updated to include CDC1700 policy.

Sat Jan 15 14:09:12 1977

changed /usr/source/new/passwd.c to not allow "user" to change password.
-ghg

Mon Jan 17 19:30:05 1977

added "/usr/source/fort/rt2/shell.s" to fort library (/lib/libf.a)
fortran callable shell to run commands, etc. call shell("command str\0")
-ghg

Tue Jan 18 16:40:01 1977

New help processor from Jimmy.  Fixed a couple of small bugs and put
documentation in /usr/news/documentation.  Installed help in /bin.
-ghg

Tue Jan 18 16:57:24 1977

"QDI" processor from Jimmy - same as Procsy syntax .
-ghg

Tue Jan 18 17:50:25 1977

Replaced 8080 cross-assembler in /bin/8080 and /usr/source/8080.
Now it deletes its "fort08" file by means of a "call shell(rm fort08)".
	-Bill Kaiser

Thu Jan 20 09:56:20 1977

Jimmy fixed sh.c "command line overflow" bug and edited in.

Thu Jan 20 16:22:43 1977

Edited new /etc/init to system.  Defaulted mesg perminsion to no
Enabled shell accounting (spy file).
Guest account "user" was made "help-only" account.
Job "diablo" edited to /etc and put in /etc/rc file to keep
mesg y on diablo printer.  It is a delay job that rolls in
every 60 sec.
-ghg

Fri Jan 21 10:23:51 1977

Edited new itr.c and lpr.c to /lib.  Limits printers to 10 pages max.
-ghg

Fri Jan 21 12:44:04 1977

CRASH !! halt at 30314 in K mode. 2 copies of ed running.
appears to have been power surge or hdwe failure.
-ghg

Tue Jan 25 19:58:18 1977

installed dec macro-11 from uicc.
also edited in odt and linkr to /bin and doc
-ghg

Thu Jan 27 08:41:12 1977

problems with intronics printer, edited in opr with lp as default site
-ghg

Thu Jan 27 18:03:47 1977

8080 assembler (fortran) fixed. Subroutine "icheck" (no relation)
needed to test for a tab as well as a blank. This was inserted,
and testing proved its correctness.  Message of the day updated.
			B.K.   1/27/77

Fri Jan 28 11:07:58 1977

Moved real password file to /etc/passwd, chmod 600,chown root.
"fake" password now in /etc/passwd.  login.c, su.c, passwd.c
were changed to use "real" password file, "/etc/6passwd".
Shell file /etc/new-user also modified to use 6passwd.
New shell file "/etc/strippw" which copies 6passwd to passwd
and removes the encrypted passwords.
-ghg

Fri Jan 28 11:09:20 1977

/usr/source/s1/ac.c increased "USIZE" from 200 to 600.
put in /usr/bin.
--J Bruner

Fri Jan 28 15:14:18 1977

Put Suttles' "splitf" program in /usr/source/new and /usr/bin.
		-- John Bruner

Mon Jan 31 14:33:41 1977

Removed the tutorial option from "help" because the tutorial requires files
in the current directory, and write permission in "/usr/news" (used by "help")
is not allowed.
				J. Bruner

Wed Feb  2 08:07:07 1977

Dropped in a "int badmem [100];" into /usr/sys/systm.h
just before the callout structure to put a "hole"
over flakey memory around 23456 ABS.  Reassembled
ken and dev.  sysgened onto /new-unix.  Also made
a shell file "/usr/sys/conf/mk-no-rs-unix" which
copies /new-unix to /no-rs04-unix and patches up
swapdev, swplo, etc....
-GHG

Fri Feb  4 16:39:49 1977

1) Fortran-IV Plus compiler (from CULC) is installed and running.
   edited files to /bin and /lib/f4p/*.
   Documentation was edited to /usr/news/fortran/*  (f4p, linker, conv, libr)
   and to /usr/news/manual/chapter1/*.  Distribution tape loaded into
   /usr/f4p/*.  Sticky bit set on all f4p binaries in /lib/f4p/* and
   /bin/f4p and /bin/linker due to heavy exec's; sped up by 20-30% in
   real time after bit set.

2) F4P added about 1000 blocks to hp0 causeing /tmp files to fill up hp0.
   patched an extra 1000 blocks onto the end of hp0 from backup swap
   area with superblock disk patch.  Root now occupies blocks 0-4999
   of hp0 instead of 0-3999.  Swap area is on 5000-9613 of hp0.
   Patched up shell file "/usr/sys/conf/no-rs-unix" to reflect change
   and made up a new /no-rs04-unix.

3) Carl Crawford rewrote "iand.f" and "ior.f" routines in old 6800
   assembler.  Kaiser edited to /usr/source/old-6800 and to /usr/bin/6800.
   It runs about 5 times faster now.

4) New 6800 cross assem (C version) up.  Original version from uicc2 tape.
   It runs better than 2400% faster than old 6800 (fortran) assembler.
   Documentation edited to /usr/news/6800 and /usr/news/manual/chapter1
   (as60 and refmanual).  Source to /usr/source/6800.

5) New 8080 cross assembler (C version) up from original on uicc2 tape.
   It is several hundred percent faster then current fortran version.
   Documentation edited to /usr/news/8080 and /usr/news/manual/chapter1/*
   (as80).  Source edited to /usr/source/8080, binary to /usr/bin/as80.

6) New "stp" - super tape processor, upward compatible tp program
   edited to /bin.

7) Besemer's Procsy (terminal only) program edited to /usr/bin,
   restricted to super-user only.

8) Set default "mowle mode" on ttye and ttyf per request.

-G. Goble

Tue Feb  8 11:05:33 1977

edited /usr/ghg/f4p-source/setfil.f4p  (binary) to
/lib/f4p/iolib.obj.  setfil maps the old "fc" setfil
calls to F4P "open" calls.
-ghg

Thu Feb 10 14:32:58 1977

Added description of differences between "fc" and "f4p" to /usr/news/fortran
and /usr/news/old-fortran for the help processor (2 links to the same file).
	J. Bruner

Thu Feb 10 20:39:08 1977

removed setfil.obj from /lib/f4p/iolib.obj and stuck it in
/lib/f4p/suplib.obj.  There were problems of not loading
trace-back code sometimes.
-ghg

Tue Feb 15 17:23:04 1977

edited in new /bin/ned, /usr/bin/apl, /usr/bin/aplp to system.
This is new uicc2 apl (from ARPA).  Various doc files edited 
to /usr/news/apl.
-ghg

Wed Feb 16 11:42:31 1977

Edited /usr/sys/conf/sysgen to check for _end >= 140000.
-ghg

Thu Feb 17 08:45:51 1977

moved /usr/mowle/f8/* to /usr/f8/*
-ghg

Fri Feb 18 17:50:02 1977

Edited in new stty to /bin.... added "19200" synonym for "exta"
-ghg

Sun Feb 20 14:56:35 1977

PT reader wont read the same tape twice without errors.  RSTS "PREXER"
also shows errors.
-ghg

Mon Feb 21 08:39:36 1977

new system up.  Buffers increased from 30 to 56. Clist decreased from
1024 to 512  (6-char blocks).  Process table decreased from 300 to
150.  NINODE decreased from 150 to 100.  New 8-bit path DH-11 driver
(prototype) (im.c) edited in.  Currently it works only on port 0,
DH-11 unit 2.  Paper reader getting errors.
Device number = 17/0 and entry "/dev/imlac" made for it;
chmod 600.
-ghg

Wed Feb 23 11:19:25 1977

Put in a check for uid >= 512 in sa, increased user buf from 256 to 512,
and edited to /usr/bin.
-ghg

Wed Feb 23 15:13:40 1977

Put in the new shell for experimental use.  The shell itself resides in
"/etc/xsh", but it is executed via the command "xsh" in /usr/bin.   This
sets up interrupts correctly.  Documentation has been placed in the help
processor.
				J. Bruner

Thu Feb 24 15:32:13 1977

moved /usr/bin/log to /usr/bin/slog and linked log to logout.  Many
users were typing "log" and running Jimmy's syslog by accident.
/usr/news/manual/chapter1/slog updated.
-ghg

Fri Feb 25 09:47:31 1977

Replaced /usr/bin/lptest and /usr/bin/lptest2.  Now uses buffered output.
-ghg

Fri Feb 25 10:15:51 1977

edited in new stty.c and getty.c.  allows 19200 baud for table "5".
-ghg

Sun Feb 27 14:07:13 1977

Installed new TU16 driver from uicc2/stanford.  New /dev's are:

/dev/mt0	unit 0, 1600 bpi, rewind
/dev/mt1	unit 0,  800 bpi, rewind
/dev/mt2	unit 0, 1600 bpi, no rewind
/dev/mt3	unit 0,  800 bpi, no rewind

Basic differences to old driver are:

1) mt0-1 are same.
2) "no rewind" devices do a skipf on close
3) more checks for "fatal" device errors.

files /dev/rmt0 - /dev/rmt3 are also present.
Kernel variables "_htdebug" and "_htdbg", if nonzero, cause stuff
to get printed out at interrupt time via kernel "printf".
"_htdebug" causes a dump everytime htintr() is called.
"_htdbg" causes a one line mesg everytime a dev error occurs.
Db may bu used to set/clear these debug flags.

-ghg

Mon Feb 28 15:11:49 1977

Testing opr -enad.  New procsy.c to /usr/source/s2. has interlocks with
/etc/end.  Placed lpc commands in /usr/lib/crontab to control enad
site and started up cron.
-ghg

Wed Mar  2 14:57:50 1977

got new apl from jimmy, edited to /usr/bin/apl.
new doc to /usr/news/apl/*
-ghg

Thu Mar 10 09:36:04 1977

new "copy" from uicc2 tape. edited to /bin.
Changed /usr/source/new/dino.c to use "%l" instead of "%d" for printf's.
Half of our disk had negative block numbers.
-ghg

Mon Mar 14 16:24:41 1977

System Stuff changed over spring break
--------------------------------------

1) New RP04 disk layout (new tables in /usr/sys/dev/hp.c)
   - more total disk space available to users
     holes, backup swap areas, etc are now present in file systems

   - faster overall access time for user's files, root is now
     in the center of the disk with user files on either side.
     Seldom accessed files (scr and sources) are on edges now.

   - New RP04 disk layout as follows:

cylinders  device #of blks fsize  isize primary usage
---------  ------ -------- -----  ----- ----------------------------------
   0       hp5       418      418     9 SYSTEM BOOT-UP FILES (/deadstart)
 1 - 34    hp4     14212    14212   --- Scratch and backup swap (if no rs04)
 1 - 24    hp6     10032    10032   --- Subset of hp4 (see note 1)
25 - 34    hp7      4180     4180   --- Subset of hp4 and backup swap dev
35 - 191   hp1     65535    65500*  606 General user files (/usr)
192- 203   hp0      5016     5000*  104 Root filesystem (/)
204- 360   hp2     65535    65500*  606 Large users' files (/usr2)
361- 410   hp3     20900    20900   331 Sources (/src)

notes:
  1  hp6 and hp7 subdivide hp4 into two filesystems.  If either hp6
     and/or hp7 is inuse, hp4 must not be touched and vice versa as
     these are overlapping filesystems.  In case of RS04 swapping
     disk failure, file "/deadstart/no-rs04-unix" may be booted up.
     This version of unix will use hp7 as a swapping device and will
     destroy any filesystem on that device.

  *  These filesystems have been rounded back to the previous multiple
     of 100 blocks inorder to facilitate easy backup/copying via
     programs such as DD(I).  This is the number of blocks that must
     be specified when a filesystem is created via mkfs (e.g.
     /etc/mkfs /dev/hp2 65500).

     All numbers are decimal.  Fsize and Isize are in disk blocks (256 words).


2) New version of ICHECK to generate a freelist that is sorted in
   such a way as to minimize disk waits due to rotational latency.
   Standard Unix freelist consists of consecutive block numbers
   in ascending order.  It is impossible to begin a write (or read)
   on the next block in the same disk revolution, therefore 1 full
   disk revolution must occur (16.7 millisec) between each write
   (or read) of a consecutive run of blocks.  The new Icheck sorts
   the freelist in such a way that free blocks on a track are
   spaced every third block apart.  This allows about 6 I/O attempts
   per revolution instead of 1.  
      Tests show (on idle system) writes on a 1000 block file run
   3 times faster.  Reads on the same file show about twice as fast.
   The actual affect on production remains yet to be seen.

3)   Since the root (hp0) is now in the middle of the disk, a new method
  of reloading it incase of catastrophic failure was needed.  Files in
  /src/mdec (and /usr/mdec) "mcopyc.s", "hpc.s" were created
  from "mcopy.s" and "hp.s".  A new tape deadstart copy binary, "hthpc"
  is generated from these sources.  Hthpc is used in the same manner
  as hthp except that a disk cylinder offset may be specified.  This is
  neccessary since the root must be loaded at cylinder 192 at the current
  time.  The boot which "tp" sticks in block 0 of magtapes was defaulted
  to "hboot", the TU16 boot, by renaming "hboot" to "mboot".  Also a version
  of "hths" was generated to allow loading a tape onto the RS04.

4)   A new shell procedure file, "/usr/sys/conf/mk-boot-tape" was created
  to generate a tape bootable version of unix.  The tape contains a "tp"
  bootstrap, the contents of "/usr/mdec" and "/deadstart".  This tape may
  be booted up to allow reloading  of the root filesystem.
  The root (/dev/hp0) must first have been copied to file "/usr/root" before
  this procedure can be run.

5)   New versions of unix to run without floating point (untested), 
  "/deadstart/nofp-unix" and without RS04, "no-rs04-unix" were generated.

6)   The line printer driver, "/usr/sys/dev/lp.c" was changed to reset
  the Centronics and reenable interrupts whenever the interface hangs.
  The interface currently hangs four or five times per week.  The number
  of times the lp interfae had to be reset since the last boot-up may
  be found be examining kernel variable "_lphangs" with db.

7)   New "copy" program from uicc2 tape was fixed up to run with 16 bit uid's
  and edited to /bin.  Doc edited to /usr/news/manual/chapter1/copy.

8)   The top 53 disk users were moved to "/usr2" which is
  mounted on /dev/hp2, using the new "copy" program.

9)   Since /dev/hp2 can nolonger be used for a very fast backup of /dev/hp1,
  due to increased disk usage, "dump" and "restor" have been modified to
  allow long tape records (25600 bytes) to be written or read.  The "-l"
  option tells dump and restor to use long tape records.  A dump file should
  also be specified using the "-f" option as "/dev/mt0" doesnt support
  long records.  "/dev/rmt0" or "/dev/rmt2" (no rewind) are currently used.
  The use of "-l" forces restor to use the "-i" option as seeks are not
  allowed on raw magtapes.  A "-o" option was added to both dump and restor
  to allow the dump file to be written on standard output (dump) or be read
  from standard input (restor) so that pipes could be used.  Since dump
  now supports long tapes, about 70000 blocks may be squeezed onto a 2400'
  reel (1600 bpi) of magtape compared to about 18000 blocks for the same
  amount of tape using standard (short) records. This would allow all user
  files (if the disk were full) to fit onto 2 magtapes. 8 tapes would be
  needed of long records were not implemented.

10)  The maximum size of a (non super-user) file is now limited to 2048
  disk blocks.
  Mods were placed in "/usr/sys/ken/subr.c", routine "bmap".  I/O error "EFBIG"
  (27) is returned to the caller when this limit is exceeded.  This should 
  prevent unattended runaway programs from "accidently" filling up the disk
  as have happened several times in the past.  The current version of UNIX
  can create (on an idle system) a 1000 block file in under 6 seconds!!
  On the average, a the /usr filesystem could be filled in less than 2 minutes
  (20000 blks free) by a looping program.


11)   Due to increased disk usage and the lack of a "spare" 65535 block
  filesystem,  the method of backing up the disk by copying hp0 to hp1
  (/usr/root) via DD and then copying rhp1 to rhp2 and then to tape has
  been adbandoned (hp2 has user files on it now).  Instead, the dump/restor
  method (using long tape records, see prev note in this log entry) is
  now being used.  A full dump of hp1 (/usr) and hp2 (/usr2) will be made
  on the weekends.  During the weekday mornings a "partial" dump will be
  made of files changed since the full dump.  In the event of a filesystem
  failure, the filesys should be initialized with mkfs, the last full dump
  should be restored to it.  Next the last partial dump should be restored
  on top of that.  Dcheck should be used to find inodes with 0 links
  (files that have been deleted between the time of the full and partial
  dumps) and these inodes should be cleared with clri.  Finally the
  freelist should be rebuilt with "icheck -s" and things should be ready
  to go.  A new shell file "/usr/ghg/new/partial" and "/usr/ghg/new/full"
  have been created to automate the backup process.  In addition, a file-
  inode listing of the filesystem produced by "ncheck" is written on file
  "/ncheck" of the respective system.  This "/ncheck" file will always be
  inode number 2 to aid in the individual extractions of files.

  The dump tapes are now as follows (now on Graham Verituf):

  DUMP DAY      TAPES USED
  --------      ----------
  Weekend	Full HP1-1  and Full HP2-1
  Mon		no dump made
  Tuesday	Partial Tues (hp1 to file1, hp2 to file2)
  Wednesday	Partial Wed
  Thursday	Partial Thur
  Friday	Partial Fri
  Weekend	Full HP1-2 and Full HP2-2
   ....            .....

  There are two sets of FULL dump tapes, HP?-1 and HP?-2.  Alternate
  sets are used on consecutive weekends, so there won't be a 
  "bridge burning" dump (power failure during dump, etc) made.

12)  UNIX loaded onto Patrick's 11/45 via 9600 baud DH-11 port.
   UNIX got seek errors on the odd number units of the new (Computer lab)
   disks at block 3600, eventhough Rogers ran diagnostics on them
   successfully(???) .  Eventually Rogers decided to send the disk
   controller back to the factory.  The DP-11 (from Newman Used Computers)
   which was supposed to be connected between Patrick's 11/45 and
   the 11/70 (50 kilobaud serial line) didn't work.
   The DM-11 scheduled to go on Patrick's machine didn't work either.
   Rogers had to leave for 2 months to goto DEC 11/70 school before
   he could get any of the above hardware up on the  11/45.

13)  Rogers (and Butz) ran 5 serial lines to room 340A from the
   11/70 DH-11 to be used for the techinal typing project.  There
   will be 3 Lear-Siegler and 2 Diablo terminals in rm 340A.

-ghg

Wed Mar 23 09:19:15 1977

New tty.c -- has kludge fix for ENAD file transfer.  Increased
NINODE to 140, decreased NBUF to 53 in /usr/sys/param.h and
recompiled kernel.  We ran out of inodes (in core) yesterday.
Sysgened to /deadstart/new-unix.
Minor changes to /usr/sys/dev/lp.c to help clear up interface hangs.
-ghg


Fri Mar 25 10:07:06 1977

New table entry "9" in /src/new/getty.c for 2400 baud Lear Siegler term.
Edited to /etc.  Set ttyp = 2400 baud and ttyn = 9600 baud for Prof
Bass (Technical typing)

New source tape from UICC.  Copied to /dev/hp6 and mounted it on /src/uicc3.
-ghg

Sat Mar 26 16:36:09 1977

Today, I, james J Besemer, being of sound state ofmind,
made the following system edit;:

1) patch to stty to cause the erase and kill characters
to always be visible when printed... put new version
into /src/new/stty.c and /bin/stty

Mon Mar 28 10:50:07 1977

New kernel and scheduler changes.
New Login and motd.

kernel:

sys1.c - changed routine "fork()" to limit non super user jobs to "MAXJOB"
         which is defined in param.h.  MAXJOB is currently 50.

sys4.c - added new system call "nicer" which does a nice on another job.
         (nicer=51.) format: r0 is set to pid, arg0 is priority as in nice.
         Error returns: "EPERM" is not super user, "ESRCH" no such process.

slp.c  - Changed scheduler routine "setpri()" to include job size (p_size)
         in calculating priority.  Currently, (p_size)/64 is added to the
         job's priority (higher number less favorable).  This is approx
         1 priority point for each KWORDS the job is using and should tend
         to discourage running huge number-crunchers on peak production.

sysent.c-Made table entry for "nicer" system call (51.)

login.c - This is Jimmy's version which forks off "/bin/motd" to handle
          the banner message.  Motd maintains a log-file "/etc/banner-log"
          and remembers when you have seen the low priority banner message
          "/usr/news/banner" and only displays the part of it you haven't 
          seen yet.  /etc/motd is always displayed even though you have
          seen it.  Both motd and login were modified to run with 16 bit
          user-id field.
-ghg

Thu Mar 31 07:48:17 1977

Increased TTHIWAT from 50 to 200 and
increased TTLOWAT from 30 to 120 in /usr/sys/tty.h
Sysgen to /deadstart/new-unix.
-ghg

Thu Mar 31 08:50:56 1977

Renamed imlac from tty% to ttyZ to reduce size of /etc/utmp.
-ghg

Wed Apr  6 11:30:59 1977

Put new Hazeltime Demo on tty0 in room 339.  Moved Lear to rm 336 (spare)
Edited new getty to /etc (has escape seq to clear hazeltine screen).
-ghg

Wed Apr  6 14:43:39 1977

Put program in /usr/bin called "clr" to output the characters 0176, 033, 032
to clear screens of Lear Sigler and Hazeltine terminals.

			J. Bruner

Fri Apr  8 13:27:47 1977

set sticky bit on /bin/cc, /lib/c[012], /bin/ls as they
are being used heavily.  /src/s1/ls.c was recompiled
as it was not shared text.
-ghg

Mon Apr 11 08:45:03 1977

Strickland found file system bug:  One can do the following:

chdir /tmp
mkdir a
chdir a
rmdir /tmp/a
ls -axli / >orphan-file
...... (and make more files in the "current" directory)
chdir / (and all of the files get orphaned)

Fix consisted of:

/usr/sys/sys2.c, routine "creat()", a check was added for a zero
link count on the inode for the current directory.  If the link
count was zero and the pathname to be created didn't start with
a "/", error ENOENT was returned.  In the process of installing
this fix, it was discovered that if the creat() sys call fails
due to no-inodes-on-device, the last directory in the pathname
had its inode locked by namei and no one unlocked it.  A call
to iput was added to the error return to unlock the parent inode.
A copy of this fix will be sent in to the Unix News Letter.
-ghg

Wed Apr 13 09:53:59 1977

Edited "macxrf", macro-11 cross ref processor to /bin.  Assembled
it from /src/uicc/macro/source.
-ghg

Thu Apr 14 19:15:34 1977

New C callable "scanf" edited to /lib/libc.a.  Source was from 
/src/uicc3/tor/sys/source/s5/scanf.c  DOC to chapter3.
Source is now in /src/s5/scanf.c
-ghg

Thu Apr 14 09:28:01 1977

Edited Bruner's C callable "shell" to /lib/libc.a.  Source is in
/src/s5/shell.c
-ghg

Sat Apr 16 13:42:58 1977

New processor "on.c" edited to /src/s2.  On was converted
from /src/uicc2/rand/s1/enable.c which edits /etc/ttys
file to allow one to turn terminals on and off.  Binary
edited to /bin/on and a link was made to /bin/off.
Documentation to /usr/news/manual/chapter8/on & off.

-ghg

Mon Apr 18 16:02:28 1977

New processor "bounce" edited to /usr/bin.  Bounce keeps a log
file, "/etc/bounce-log", off bouncy terminal keys.  Source
is in /src/misc/bounce.c.  Doc is in /usr/news/manual/chapter1.
/usr/bin/bounce is SUID with "pdh".  pdh is also owner of 
/etc/bounce-log.
-ghg


Thu Apr 21 09:01:33 1977

Edited Craig Strickland's experimental text editor to /usr/bin/xed; chown tgi;
Doc to /usr/news/manual/chapter1/xed; also chown tgi.
-ghg

Wed May  4 08:27:44 1977

Changed file /etc/partial as dump blew up this morning
because it thought tape was full after 20000 blocks.
Specified tape size of 65535 blocks to correct.
-ghg

Fri May  6 12:47:10 1977

Took change-baud-rate warning out of stty for the summer.
-ghg

Fri May 13 08:08:24 1977

New version of /etc/init:

1) If console switches = 0, comes up single-user after boot up
   and goes multi-user after CTL-D

2) If switches = 0173030, run single user as before

3) If switches are anything else, come up multi-user.

4) Init ignores hangup signal until in multi-user mode as ontty
   would abort init if not multi-user.
-ghg

Tue May 17 22:01:14 1977

Edited in new help.c - fixes interrupt bug on entry
-ghg

Sun May 22 14:44:36 1977

re: Unix users' meeting bug

% cat >/tmp/6passwd
root::0::/:
^d
% mv /etc /.etc
% mv /tmp /etc
% /bin/login root (this makes you the Super-user)
# mv /etc /tmp
# mv /.etc /etc (cover your tracks)

fix: removed suid from /bin/mv. This won't allow users to do the
infrequently used directory rename but that will be fixed later.

   New "mv" edited to /bin with message about directory renames.
Source is in /src/new.
-ghg

Tue May 24 15:53:46 1977

Rogers connected 2nd diablo to ttyi (for tech typing). Turned
on port and set to 300 baud. -ghg

Thu Jun  2 11:27:43 1977

The following technical typing programs were edited to /usr/bin:
courier72
diablogreek
diabloroman
eqnextract
eqnproof
finalgreek
finalroman
linpad
neqnfinal
neqnproof
proof
They were also stripped, chhmod 705; chown bass.  See Prof. Bass
for documentation.
-ghg

Mon Jun  6 11:24:26 1977

The following system changed were made over the last
couple of weeks:

1) "Remind" processor debugged and installed in /bin.
    Remind came from /src/uicc2/rand/s2/remind.c .
    It allows anyone to queue up a message or job
    to be delivered/run at a future time.  Fixes include
    conversion to 16 bit uid's, "-f" option would
    read file (with super-user access), and "-m"
    option needed a \n for a one line shell command.
    Source edited to /src/new. Documentation to
    /usr/news/manual/chapter1.  A program "snr"
    (snoop remind file (from ILL)) was edited to
    /usr/bin and /src/new.

2)  Pseudo teletype driver from ILL was installed as
    Major Char device = 18, 19.  This device allows one
    to talk to a "terminal" via doing I/O on a file,
    like a "full duplex" pipe. Following entries made in /dev

	tty[N-U] - "slave device" which can be run as a Unix terminal.
        pty[N-U] - controlling files for above.  I/O tp pty? takes
		   place to corresponding tty?.

    More documentation is in source code which is in /usr/sys/dev/pty.c .
    STTY/GTTY calls for KILL/ERASE/BAUD still are a little strange.
    There are currently 8 pseudo terminals (ttyN - ttyU) available for
    experimentation by the systems staff.  This driver is expected to
    aid in the implementation of the computer network as it will allow
    one to log in to "logical" ports on another machine.

3)  Real-time Input (non-blocking reads) device driver (prelim version)
    was written and installed as "/dev/xx" (for lack of a better name).
    This device will take DH-11 input at speeds upto 19200 baud and
    write it to a circular buffer in a user job.  This driver will
    allow full-speed input from serial ports, provide "hooks" for
    pump and can later be modified for such things as real-time
    sampling.  Routine "xxintr()" is called from ttyinput(). Xxintr()
    calls assembly lang routine "sufet()" (in m45.s) to manipulate
    memory managment and stuff the character in the user buffer (locked
    in core).  This device driver skips many of the system protection
    checks (addrs, byte count, etc) at interrupt time.  It is therefore
    the responsibility of the user to insure his arguments are vallid
    or a system crash will result.  Since data comes in character at a 
    time in interrupt mode and the "pointers" are in user space and
    the user has the CPU given back to him while the transfer is under
    way, it is almost impossible to provide any kind of running check
    at all.  Due to the fact the job is locked in core and previous
    reasons require this device be restricted to super-user callers.

4)  Fixed routine setpri()/slp.c as per ver7 diff listing. The line
    "if(p>curpri)" was changed to "if(p<curpri)".  This seems to
    have solved the bug where 10 or so small jobs in a tight cpu
    loop will cause the scheduler to lockup.

5)  Jim Besemer has written a program which cause pipes to sometimes
    drop bytes with variable length i/o.  Modded ken/pipe.c as per
    ver7 diff listing and everything seems ok.

6)  Change to terminal driver dev/tty.c and /dev/dh.c to make raw
    mode output be 8 bit path as will be Unix ver 7.  Also added 
    some "hooks" for pump.  The Imlac driver, im.c, will no longer
    be needed for 8 bit output. For 8 bit output use:
    stty nl -upper tabs raw cr0 bs0 tab0

7)  Changed routine ufalloc()/fio.c to put user to sleep at PFNT
    priority (defined in param.h as -3) instead of returning error.
    The printf "no file" was changed to "WAIT FNT SPACE".  The
    sleep is done on &lbolt and the printf occurs the first time
    through only.

8)  Changed shell files "/etc/full-hp1" and "/etc/partial" to make
    a copy of the /etc directory on /usr/etc so the password file,
    the remind file, etc... will get dumped daily instead of weekly.

9)  Changed /etc/rc system startup file to check for existance of
    "/systime" file.  If this file exists, the print queue (/usr/lpd)
    won't be changed and no "remind" will be started up.  There
    is also a message issued to /dev/tty8 to indicate whether a
    production or test system is running.

10) New program "delrem" from /z/std_src/s1 which allows one to list
    and delete his own queued reminders out of /etc/rmdfile.  Modified
    to use 16 bit user id's and edited to /usr/bin.  Remind was also
    moved from /bin to /usr/bin.  Source to /src/new/delrem.c. Doc to
    /usr/news/manual/chapter1/delrem.
--ghg

Mon Jun  6 14:02:30 1977

Changed /src/new/getty.c table 6 & 7 screen clear sequences to
clear the ADM-2 (sphynx) terminals on login.  Removed the
sequence for the Hazeltine demos.
-ghg

Tue Jun  7 14:22:07 1977

New nroff with bigger buffers to /usr/bin... old moved to /usr/bin/old/nroff
Source in /src/s7/xroff/* .
-ghg

Tue Jun  7 21:37:32 1977

Copied TGI's XED into /bin/ned.
Old ned to /bin/old/ned.
-ghg

Wed Jun  8 08:52:07 1977

Commented out code to force 134.5 baud to be 6 bits wide
instead of 8 in /usr/sys/dev/dh.c for jgm and tgi.
-ghg

Sun Jun 12 19:06:01 1977

Fixed df.c to do a stat on his file to see if it is a block
dev (if not su).  Bin to /bin, src to /src/new.  This will
keep one from doing a df on someone else's terminal. as df
has SUID (root) permission.
-TGI

Sat Jun 18 16:07:50 1977

New device driver "tbl.c" to get system tables.  Major char # = 21.
Minor dev number selects table.  Since addresses are known to be valid,
much of the checking that mem.c handler has to do is skipped.  Tbl.c is
10 - 20 times faster than mem.c.  Current tables implemented are:

Table	minor #	file-name	mode
-----	-------	---------	----
0-_end	0	/dev/tbl0	600
_proc	1	/dev/proc	604
_u	2	/dev/tbl1	604
_file	3	/dev/file	604
_inode	4	/dev/inode	604
_swapmap5	/dev/swapmap	604

/usr2/ghg/sys-usage/nfi.c and /usr2/ghg/sys-usage/rpu.c were changed to
use new device.  new/ps uses /dev/proc.
-ghg

Tue Jun 21 13:53:01 1977


Changed lpd.s to issue a formfeed right before deamon exits so
last page of file won't be left in toner bath on Houston printer.
-ghg

Thu Jun 23 09:01:39 1977

Reassembled 17d.s end.s itd.s lpd.s in /src/new to use "/usr/bin/banner"
instead of /bin/banner. Edited to /etc.
-ghg

Fri Jun 24 04:45:18 1977

defined "EJLINE" (lines/page) to be 59 in lp.c so both Centronics
and Houston printer would work properly.

Moved ps from /bin/new to /bin. Old ps to /bin/old.
-ghg

Tue Jun 28 08:08:07 1977

Copied XED to /bin/ned (also /bin/qed)
Old ned moved to /bin/ned.old

-- TGI

Tue Jun 28 08:47:18 1977

Due to the RP04 Failure this weekend which clobbered most of
/dev/hp0 and /dev/hp1 and erased some of the pack formatting,
the RP04 handler dev/hp.c has been changed to halt after
printing out any deverror message.  Also a printf stateing
RP04 error not recovered/panic followed by a halt was inserted
in hp.c.  conf/m45.s had a globl routine "halt" added next to
"idle".  This is so C routines can execute halts.
-ghg

Tue Jun 28 12:45:54 1977

Inserted new copy of Jimmy's QDI processor in "/usr/bin/qdi".
Buffered I/O.  Old copy moved to "/usr/bin/qdi.old".
Src moved to "/src/new".
-TGI

Wed Jun 29 14:50:51 1977

Changed "/usr/bin/pst" to use a pipe instead
of scratch file "qtmp".
-TGI

Wed Jun 29 14:55:22 1977

(1) RAND editor up and running on ADM-3As.  Binary in
/usr/bin/re, source in /src/re/*.  While we have the disk
space the 'lre' (learn rand editor) help files and documentation
are in /src/uicc2/rand/re/lre/*.

(2) New imload; knows about 8 and 4 bit mode files, searches
/usr/imlac if it can't find file in your directory.  See program
comments for more info.  Source in /src/s1/imload.c, binary
in /usr/bin/imload.

(3) Mod to IMLAC ROM; if started at 71 the IMLAC will send a
QUIT char and then jump to 40 (normal load address).  The
QUIT is caught by the 'imlacdaemon' which loads a 'deadstart'
program (currently sts) into the IMLAC.  Source for the daemon
in /src/s1/imlacdaemon.c, binary in /etc/imlacdaemon.  /etc/rc
was changed to startup the daemon;  the line in /etc/rc must
specify the controlling tty (currently ttyZ) and the deadstart
loadfile name.   Autoload action may be disabled if desired
by '% mesg n' from the IMLAC.

(4) Some new 4 bit IMLAC load files from U of Ill copied to
/usr/imlac/*.

--b.c.

Thu Jun 30 06:35:46 1977

Set "sticky" bit on /bin/stty as shell accounting shows it is
one of the most heavily used files after cat and ls.
-ghg

Thu Jun 30 12:04:11 1977


Thu Jun 30 12:07:33 1977

Installed modified shell (Time prompt, Exec command)
in "/etc/xsh".  Source is "/src/new/new-xsh.c", left
old src as-is 'cause date was recent.
-TGI

Thu Jun 30 22:10:16 1977

Edited in "/usr/bin/tail", src to "/src/new/tail.c".
Syntax = tail -nn file [file [file ...]]
"nn" is number of lines to be displayed.
-TGI

Sat Jul  2 01:23:43 1977

Installed new version of "ls" in /bin/new.
Link cnt field increased from 2 to 3 chars so
counts >= 100 on stuff like /usr won't mess
up columns.  Also increased user name field to 
8 chars from 6 so complete name appears.
-TGI

Sun Jul  3 12:44:37 1977

Tabs are now expanded correctly on raw mode output.
Fix in /usr/sys/dev/tty.c
-ghg

Sun Jul  3 13:49:13 1977

Moved sort from /usr/bin to /bin 'cause cref wanted it there.
-TGI

Sun Jul  3 16:17:56 1977

Added pathname to "newbin" command in /etc/xsh.  Source to /src/new/new-xsh.c
-TGI

Wed Jul  6 15:28:14 1977

system changes during weekend of 04-jul-77

 The format of the first (baud rate) word of the stty call has been 
  changed.  Bits 3-0 specify the baud rate (input=output speed)
  and the remaining 12 bits are now freed for extra flags.
  The following extra flag bits are currently defined:

#define SPEED	017		/* index into baud rate table */
#define DRSVD	020		/* device reserved by another handler */
#define READC	040		/* realtime read to circular user buffer */
#define NBLKR	0100		/* non blocking reads on this device */
#define NBLKW	0200		/* non blocking writes on this device */
#define PUMP	0400		/* special processing for PUMP */
#define SUSNL	01000		/* suspend output on newline output */
#define BLITZ	02000		/* blitz - abort all i/o until close */

The following kernel routines were changed to effect the changeover:

tty.c dh.c kl.c xx.c tty.h

In addition, the following user level programs had to be changed:

getty.c stty.c prc.c procsy.c fantom.c

In order to maintain compatibility with other systems,  all code
changed by the extended stty modes is conditionally compiled
if the symbol "XSTTY" is defined.
	Currently, only the READC and PUMP bits are supported with
the software changes, other changes will be phased in as needed.
The READC bit is used to signal a transfer via the xx handler instead
of the tty handler.  The xx handler allows serial (DH-11) lines to
be read at up to 19200 baud to a user circular buffer.  The PUMP bit
currently causes the user job to be signaled on a user specified
end of block character when reading input from the xx device.  The
tty "erase" character is taken to be the end of block character
and the signal number is the kill character.  On output, the PUMP
bit causes the job to sleep at PUMPRI (-1) instead of TTOPRI as not
to process signals.  Per tty data used by the xx device was moved
to the end of the tty structure (5 bytes worth).  The xx device
now supports multiunit capability, the minor unit number of the
xx? special is the same as the minor number for the tty? file
on the DH-11 ports.  Also, only super user can set the PUMP, READC,
NBLKW, NBLKR, DSRVD bits.  The xx handler sets READC on open, 
and clears it on closes.

	A new user program, upload, was written to make use of the
new capabilities of  the xx device driver.  It allows one to transfer
8 bit data bytes to the PDP-11/70 over DH-11 lines at speeds upto
19200 baud without handshaking after the transfer has started.
Since the xx is a "dangerous" device for the user to access directly,
the upload program is SUID root to allow the user to safely
get data from xx onto standard output.

	The problem of the system "locking up" when deverrors are
printed out for the TU16 has finally been fixed.  A device driver
may now set the global variable "errlg" non-zero, issue the
deverrors and printfs and set errlg back to zero when finished.
If errlg is non zero, printf output is placed onto the clist
instead of the console tty (with interrupts off).  The mem device
driver has an errlog device (minor=3) that takes the characters
off of the clist and gives them to a user job which will usually
print them on the console.  Currently, only the TU16 handler (ht.c)
makes use of this feature.  The default case is to still print
the messages on the console with interrupts off.  Most other
system errors (other than magtape errors) are pretty serious
and still should be directly output on the console as the
system will probably crash anyway.  Routines modified :
ken/prf.c dev/mem.c.  New file: errlog.h which is included in
prf, mem, ht, and anyone wanting to use new errlog output.

For now, the /etc/rc system startup file has been modified to
include a "cp /dev/errlog /dev/tty8" line so the messages will
get listed on the console.

A day one Unix bug was discovered on looking through ken/sig.c
It seems that the routine psignal() plays with the proc p_stat
instead of the p_pri when he attemps to give the process a one
slice priority of PUSER so the process can get in to process
the signal.  Since p_stat is always less than PUSER, nothing
(priority boost) ever took place.  Inspection of the Unix ver 7
"fix list" comfirmed the bug.  The p_stat's were changed to
p_pri's and new sig.c was installed.
-ghg

Wed Jul  6 15:42:16 1977

Moved new "ls" from /usr/bin/new to /bin.
Features 3-column link field as well as 8-character 
user name.  Set sticky bit.
-TGI

Wed Jul  6 16:41:05 1977

Changed /src/uicc/macro/source/lout.m11 to use 58 lines/page
(it really is now 59) so Houston printer doesnt waste every
other page on a .lst file.  edit bin to /usr/bin/macro,
old bin to /usr/bin/old/macro.
-ghg

Thu Jul  7 08:45:56 1977

Fixed bug in dcheck which caused "ghost" entries to be printed
when multiple filesystems were checked.  A problem was also
discovered in the dynamic core allocation which could have
caused a memory fault on rare occasions.  The first problem
arose when the ecount array did not have its last element
cleared.  This would cause the ghost entry to sometimes be
printed (always last inode on fs) if the previous filesystem
had that inode allocated.  Also a check which Jimmy added
to check for an illegal inode number failed for the last
valid inode on a filesystem if the inode was allocated.
Source edited to /src/new/dcheck.c bin to /bin/dcheck.
-ghg

Thu Jul  7 16:47:25 1977

Installed new version of "kill" in /bin since
old ver would not allow sending signals >= 13.
Source to /src/new/kill.c and binary to /bin.
-TGI

Thu Jul  7 16:58:05 1977

Cleared sticky bit on /bin/old/cc so it wouldn't
waste space (just in case someone ran it) on RS04.
Also cleared sticky bit on /bin/old/sh.
Set sticky bit on /bin/cc.
-TGI

Sat Jul  9 03:34:42 1977

RP04 ERR - 01200 bl 21	0144260  RPDS 015700
apparently RP04 glitched/died for no reason. (Power glitch?).

The RK05 on other machine crashed (started getting errors) at about
the same time.

Booted up "no-rs04-unix", then noticed the sticker on the DECWRITER
saying "NO-RS04", "BOOT UP NEW-UNIX".

Did an icheck on /dev/hp[0-3], (also dcheck) found two bad entries.
They were scratch files, since they weren't directories,
and ncheck found only three-digit names for them, I did clri on them.

icheck -s cleaned up after that (after a few tries).

-TGI

Mon Jul 11 15:02:44 1977

Added ttyq to /etc/ttys so "on all" would work.
-TGI

Wed Jul 13 22:42:36 1977

Edited /bin/opr so files cannot be queued to printer from "user".
Cause someone was here this evening running fingers, snoopy
pix, etc...

Original to /bin/old/opr, chmod 604.
-TGI

Thu Jul 14 09:47:15 1977

Running Dectapes was causing the system to crash on errors.  Traced problem to
a call to putc() in the errlog code.  The putc() (in m45.s) has an spl 5 in
it and the Dectapes interrupt at br6, causing a recursive interrupt if an
error occurred.  Changed spl5 to spl6 and sysgen to /deadstart/new-unix ok.
-ghg

Thu Jul 14 16:13:20 1977

New processor "suid" in /usr/bin.  Syntax is:
# suid nn	where "nn" is a (decimal) user number.
Suid does a setuid(), then invokes the new shell (/etc/xsh).
Since it doesn't have the set-uid bit, you must already
be super-user.  Useful for maintaining a su at a lower
"level", so su passwd needn't be typed excessively.

Source in /src/new.

Sun Jul 17 12:36:40 1977

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

1) New RP04 disk layout (new tables in /usr/sys/dev/hp.c)
   - A new filesystem, hp8, has been added to hold /lib when
     the root is moved to the rs04.  It is 4 cyl long (1672)
     blocks and the space was stolen from hp6.  Hp5 (/deadstart)
     was increased from 1 to 2 cyl (836 blocks).  This caused
     the positions of hp4, hp5, hp6, hp7, and hp8 to be shuffled
     around.

   - The new RP04 disk layout as follows:

cylinders  device #of blks fsize  isize primary usage
---------  ------ -------- -----  ----- ----------------------------------
 0 - 1     hp5       836      836     9 SYSTEM BOOT-UP FILES (/deadstart)
 2 - 30    hp4     12122    12122   --- Scratch and backup swap (if no rs04)
 2 - 24    hp6      7942     7942   --- Subset of hp4 (see note 1)
21 - 30    hp7      4180     4180   --- Subset of hp4 and backup swap dev
31 - 34    hp8      1672     1672   608 /lib when root is on RS04
35 - 191   hp1     65535    65500*  606 General user files (/usr)
192- 203   hp0      5016     5000*  104 Root filesystem (/)
204- 360   hp2     65535    65500*  606 Large users' files (/usr2)
361- 410   hp3     20900    20900   331 Sources (/src)

notes:
  1  hp6 and hp7 subdivide hp4 into two filesystems.  If either hp6
     and/or hp7 is inuse, hp4 must not be touched and vice versa as
     these are overlapping filesystems.  In case of RS04 swapping
     disk failure, file "/deadstart/no-rs04-unix" may be booted up.
     This version of unix will use hp7 as a swapping device and will
     destroy any filesystem on that device.

  *  These filesystems have been rounded back to the previous multiple
     of 100 blocks inorder to facilitate easy backup/copying via
     programs such as DD(I).  This is the number of blocks that must
     be specified when a filesystem is created via mkfs (e.g.
     /etc/mkfs /dev/hp2 65500).

     All numbers are decimal.  Fsize and Isize are in disk blocks (256 words).
--ghg

Mon Jul 18 07:29:44 1977

Running with root on RS04 as an experiment to see how system response goes.
Boot up from RS04 /hsunix or RP04 /deadstart/hsunix. /lib is on /dev/hp8,
swap is on /dev/hp7. Free space on hs0 = 970 blocks.  Changed /src/new/ps.c
to use "/dev/swap" instead of "/dev/hs0" for swap device. The entry "/dev/swap"
is linked to whatever the current swap device is, thereby eliminating the
need of recompiling ps everytime the swapdevice changes.
-ghg

Mon Jul 18 13:48:43 1977

Moved /etc/user-file to /lib/user-file - space low on rs04 root
-ghg

Mon Jul 18 14:09:09 1977

Moved "/etc/xsh" to "/usr/bin/xsh.".  (Note the ".") 
Moved "/usr/bin/xsh" to /usr/bin/old, new /usr/bin/xsh
exec's "/usr/bin/xsh.".

- /etc/xsh	execv("/usr/bin/xsh.", argv);
- /usr/bin/xsh	execl("/usr/bin/xsh.", "-", 0);

New "/bin/write":	will always get user-name, even
when forked from shell with "&".

-TGI

Tue Jul 19 09:38:06 1977

Changed lp.c to use 60 lines/page (from 59).  This is a removal of
a kludge put in to allow the Houston printer to run without
throwing lots of paper.  Bc changed a hardware jumper in the
Houston to allow printing over the crack.  Also changed lpclose()
to leave a null character in the printer data buffer register
(instead of a form feed) when the printer sets idle.  Noise sometimes
gets on the strobe lines and strobes the last character to
the printer, causing double printing and excessive page ejects
(when there is a form feed) in the buffer.  Also shielded the
printer cable and printer electronics with aluminum foil.
-ghg

Wed Jul 20 17:30:28 1977

Started running emergency Dectape usage for key staff members
as the TU16 is completely dead.  TGI fixed Xed bug on auto
save which trashed current line.
-ghg/TGI

Thu Jul 21 15:24:45 1977

Patched /usr/bin/slog to run /u/bin/x instead of /bin/ned
so RS04 wouldn't need another copy of XED.
-TGI

Thu Jul 21 15:34:58 1977

Modified version of mail in /usr/bin/mail.
Has SUID to root, permits secure mailboxes.
Will not display other peoples .mail files,
will not send to someone if -rw------- perm's
are off.  Won't send if link count != 1.
Won't create a .mail file if one does not exist.

/bin/mail still there, but x permissions cleared.
Entered message via banmess.
-TGI

Thu Jul 21 16:37:24 1977

Kicked page limit from 20 to 30 for /dev/lp.
-TGI

Sat Jul 23 13:22:25 1977

New stty edited to /bin.  Allows setting/clearing of extra mode
bits in baud rate word. DSRVD READC NBLKR NBLKW PUMP SUSNL BLITZ
-ghg

Sat Jul 23 14:45:51 1977

Edited in TGI's new shell to /bin/sh, old to /bin/sh.old
Uses "time" for prompt if prompt is set to null.
-ghg

Sat Jul 23 20:38:53 1977

Edited "list" verb into stty.  Old stty to /bin/old.  Updated
/src/new/stty.c to reflect change.
-TGI

Sat Jul 23 22:12:44 1977

New tty.c dh.c kl.c in /usr/sys/dev.  New /etc/init.  Handles
stty "blitz" bit which cleans out a terminal.
Init (the forked off copy) does a sleep(15) if he can't open
the terminal file and tries again instead of madly "thrashing".
-ghg

Tue Jul 26 05:57:32 1977

Added system variable "maxblk" in /usr/sys/systm.h and define "MAXBLK"
in param.h (currently 2048).  Changed ken/subr.c, routine bmap to use
maxblk for determining max size of a non su file instead of inline code.
A "maxblk = MAXBLK" was added to init code in ken/main.c as one cannot 
put initialized data in systm.h.
This variable may be patched on the fly to allow special runs involving
large users' files.
-ghg

Tue Jul 26 21:18:48 1977

Added "-d" flag to XED so he wouldn't delete ".tmp" file upon normal exit.
Changed "[nothing written]" stuff so he wouldn't do a creat() on the
file, thereby losing anything already there.

Moved /usr/bin/mail (SUID to root version) to /bin; /bin/mail to
/bin/old/mail.  Source of new mail to /src/new/mail.c

Linked /bin/stty to /bin/STTY for users that get themselves into bad states.

Wed Jul 27 21:27:07 1977

Replaced shell file /usr/bin/create with a C version which just exec's a 
/usr/bin/ned -f file-name.  This gets rid of the problem of a novice
typing create (because Procsy and RSTS have commands of the same name)
and hitting an interrupt to leave a stranded ned at the terminal..
-ghg

Thu Jul 28 19:32:16 1977

Fixed the "kids" stuff in "/usr/bin/xsh.".
Moved original to "/usr/bin/old/xsh.".
New source to "/src/new/xsh.c".
Also fixed a bug which would allow shell to
bomb out with "Bus error" because of a bad
subscript if process status from wait() was
greater than 13.

Other mod was to not invoke .startup file if
uid == 13 ("user").

Propagated mods to "/bin/sh" after a few hours
of running xsh without problem.

Fri Jul 29 09:03:17 1977

Changed /usr/sys/param.h, MAXBLK from 2048 to 6000, to allow ed Delp
to run his huge files next week.  Also fixed tab expand bug in
tty raw mode output in dev/tty.c.  Sysgen to new-unix, hsunix.
-ghg

Fri Jul 29 15:46:21 1977

Stuffed process "zr" in /usr/bin.  It does a creat() on specified
file(s), mode 0604.  It's useful for zeroing (emptying) or 
creating files.

Source to /src/new/zr.c

-TGI

Sat Jul 30 13:06:35 1977

Moved root back to RP04 (hp0) so things will be easier to
maintain during ghg's vacation in Aug.  The root will be
moved back to the RS04 before Sept.  The deadstart procedure
and several programs will have to be changed as "volitile"
will be moved from /etc to /lib (on RP04)
-ghg

Sun Jul 31 04:52:25 1977

Edited new versions of sh & xsh into /bin/sh /usr/bin/xsh. on
Friday.  Will not automatically run .startup on "user" or
"root".  Therefore, one can run "su" on any user terminal
without fear of the "resident" startup file.
-TGI

Sun Aug  7 10:42:14 1977

Edited in new "tp" to /bin.  Old tp to /bin/old/tp. Src in /src/new.

1) checks for ttyk (assem constant) for Dectapes unless su.
2) rewinds tape when done.
3) runs at higher priority.

-ghg

Sun Aug  7 20:18:37 1977

Changed hp partition tables... hp4 now overlaps hp8 as well as
hp6 and hp7 for more space.
-ghg

Tue Aug 16 13:52:46 1977

Edited documentation for Dectape user file backup to 
/usr/news/manual/chapter1/backup.  Changed tp documentation to include
fix of 32 char pathname bug.
-ghg

Fri Aug 26 14:26:12 1977

edited new "man" to /usr/bin.  Calls "/usr/bin/help" instead
of "/bin/help".
-ghg

Fri Aug 26 16:10:36 1977

New 'document' program to conform to standard format.  Source to 
/src/s1/document, binary to /usr/bin/document, doc to 
/usr/news/manual/chapter1/document.

Now table driven, inhibits interrupts, calls ed instead of ned.

Mon Aug  1 16:25:45 1977

Version of neqn, called neqnw now in /usr/bin.  Neqnw generates
whole line motions without overprinting, so that equations can be
examined on a CRT or line printer.

Also filter 'rmloc' added; it is used after neqnw and nroff to remove
local motions so that the equations can be printed without reverse
linefeed or backspace.

Neqnw and nroff run about 5 times faster that neqn and nroff since
neqnw puts out the equation as one word (does his own internal string
management) wheras neqn produces many '.ds' commands for nroff, which
uses disk files to store strings.

Option '-e' on neqnw is used to look at just the equations contained
in the input file.

Fri Aug 26 14:26:24 1977

Imlacdaemon now loads 'dts', a short dumb terminal simulator into the
IMLAC on starts at 71.

Imload no longer pauses before sending the loadfile, you may force him
to wait 3 seconds by using the '-w' switch.  Imload also now sends
8 control-a's before the load file which causes 'dts' to jump to 
the hardware boot at 40.

Wed Aug 31 07:47:50 1977

1) New Fortran-IV Plus from CULC installed in system.

   f4p (fortran) to /bin
   linker to /bin
   libr to /bin
   mv /lib/f4p /lib/.f4p
   new /lib/f4p from tape
   old f4p and linker and libr in /usr/bin
   cleared all sticky bits incase things have to get moved on production.

2) Installed setfil.f4p and shell.f4p in /lib/f4p/suplib.obj

3) Installed new device "lq" and handler lq.c.  This is really
   a copy of lp.c (with check for hung controller removed) to test
   out the new potter line printer.  CSR=177520 VEC=210 .

4) Running with new ep.c (/dev/ep) handler for testing.  It will drive
   the Houston printer (via DH11 and DM11-BB) over a serial line.

5) New /etc/epd daemon for /dev/ep to handle page folds, ejects,
   and page accounting.

Note: 4) and 5) are not thoroughly debugged as there are currently
hardware problems with the serial interface for the Houston printer.
-ghg

Wed Aug 31 12:51:27 1977

New "help" from Jimmy edited to /usr/bin.  Added stuff to
open "/dev/tty" on fd=2 so help can be run as a shell
for the user acct.  Also changed routine help() to use
printf's from old help.  Has misc bug fixes.
-ghg

Wed Aug 31 14:26:33 1977

New "od" from Jimmy.
Edited to /bin.  Fixes bug where a dump of a file with
all the same data would print out nothing.
Source to /src/new.
-ghg

Wed Aug 31 18:38:42 1977

Moved /bin/new/ps to /bin.  This version takes optional
arguments (terminal numbers) to show processes at
selected terminals.
-J. Bruner

Fixed Bruner's bug in help.  Jimmy added another "define" which
I missed during initial installation earlier today.
-ghg

Wed Aug 31 22:46:35 1977

New rand editor fixes sign extension in 16bit uid conversion (someday
I'll learn).  files:  /src/re/re.c    /usr/bin/re

I have discovered several glitches in my files after using 're' heavily
that must definately be bugs but I have not as yet found a small example
file and command stream to reproduce the errors for debugging... BEWARE
--b.c.

Thu Sed  1 09:27:33 1977

Installed the "la" command in /usr/bin (print number of pages printed by
each user according to an accounting file in /usr/adm).  Also installed
documentation in chapter 8 of the manual.  Source is in /src/new.

--J. Bruner

Thu Sed  1 17:57:56 1977

Linked /bin/ps to /bin/pst since /usr/bin/pst is now obsolete.
-TGI

Thu Sed  1 19:30:40 1977

Editted new shell into /bin/sh, /etc/xsh, /usr/bin/xsh.
Also new xed to /usr2/xed, /usr/bin/xed.

Sources to /src/new.

Any problems, let me know.

-TGI

Fri Sed  2 15:28:47 1977

Linked /usr/bin/ned to /usr/bin/xed for apl changes.
Apl uses /usr/bin/ned for editing.
-TGI

Fri Sed  2 16:43:36 1977

New opr.c and epd.s to /src/new.  opr to /bin, epd to /etc.
Runs Houston on serial interface (/dev/ep) and does page
accounting.
-ghg

Sun Sed  4 08:11:17 1977

Increased utmp buffer in /src/s2/wall.c so it would handle all terminals.
Binary to /etc/wall.  Also new xx.c and dh.c with minor changes for
pump.
-ghg

Tue Sed  6 08:49:57 1977

Linked "/bin/ed" to "/bin/ned", leaving "/usr/bin/ned" untouched.  Response was
slower for "ned" since the shell had to try /bin/ned and then /usr/bin/ned and
also because /bin/ed had the "sticky" bit set.  Response for either "ed" or
"ned" is now the same.  (TGI says currently "ned" and "ed" are almost the 
same)

				J. Bruner

Wed Sed  7 10:25:45 1977

Installed program "nam" in /usr/bin.  Source to /src/new.  This program reads
the old password file (/etc/passwd) and creates a seek file for eventual use
by "ls", "ps", etc.
--J. Bruner

Thu Sed  8 07:52:13 1977

Panic - Out of swap space yesterday (as expected) from 30
users logged in.

Sysgen new system:

Swap to /dev/hp6 (7941 blocks)
mount /dev/hs0 on /tmp
NBUF from 45 to 34
NINODE from 200 to 250
NFILE from 175 to 225
NCLIST from 512 to 1024
CMAPSIZ, SMAPSIZ from 100 to 300

A lot bigger (except buffer pool) and slower!!
-ghg

Fri Sed  9 16:22:06 1977

Set "sticky bit" on /bin/ps, /bin/ls, /bin/stty.
-TGI

Sat Sed 10 13:49:23 1977

Removed "nam" in place of "/bin/new/mskf" which creates a seek-format file
containing all information in "/etc/6passwd".  Modified programs "ls", "ps", and
"la" to take advantage of this change and placed the new versions in "/bin/new".
Newer versions run several times faster than the old ones since they do not
require long file searches.  The old method is used if the seek file "/etc/u-seek"
cannot be found.

--J Bruner

Sun Sed 11 12:20:58 1977

New command "exptab" in /usr/bin.  Filter to expand tabs to spaces.
Source is in /src/new/exptab.c.
-ghg

Sun Sed 11 17:10:10 1977
Recent system changes during last 3 weeks or so.

1) Changed scheduler to handle 2 swap devices.  A fast primary
   device (RS04) and a large "slow" device (RP04).  Processes
   are swapped out to the primary device if at all possible,
   but will go to secondary swap if primary swap is full.
   In addition, processes which don't do anything after they
   have been swapped to primary swap for the number of seconds
   in system global variable "_ptimx" will be "staged out"
   (copied from primary swap to secondary swap) as to free up
   primary swap space for highly interactive processes.

	The system still sees only one "logical" swap device
   (/dev/sw) with a special device driver, dev/sw.c redirecting
   the requests to either the primary or secondary devices.
   A special version of "malloc", called "malloc2" is called to
   force swap space to be allocated on the secondary device.
   The 2 swap devices and configurations are defined in conf/low.s
   as system global variables.  The original "_swapdev", "_swplo",
   and "_nswap" still exist and define the "logical" (/dev/sw)
   device.  In addition the first block of the secondary device
   is permanently allocated in main.c to avoid swapping over the 
   "crack" between the two devices.  Also system global variables
   "_npriswp", "_nsecswp", "_nstages" were added to monitor
   the performance the split swap operation. Text images are kept
   on secondary swap as they tend to be very large and immobile.
   This change is conditionally compiled in by the defination
   of "XSWAP" in param.h and low.s.

2) A new system global variable "_pipedev" has been defined.
   ken/pipe.c now allocates pipes on this device instead of
   _rootdev.  This change allows pipes to be put on a mounted
   filesystem instead of the root.  If any attempt to use pipes
   is made before pipedev is mounted, a "panic no fs" will
   result.  Currently pipedev is /dev/hs0 which is mounted
   on /tmp.  The first 1500 blocks of the RS04 are devoted
   to the filesystem (/tmp and pipes) with the remaining
   548 blocks given to the primary swap area.
   The RP04 (/dev/hp6) is used for the secondary swap area.

3)  The scheduler was changed to give much more favorable
   in core time to jobs with at least a nice --5 on them.
   This is accomplished by setting the process status to
   "SSLEP" instead of "SWAIT" when it goes nonrunable at
   a positive priority.  Login was changed to read the
   (positive) number from the GCOS field in the password
   file and do a nice on the negative of that number.
   All of the technical typing secreatries were given
   a 5 point boost in priority.  The major reason for this
   change was to guarentee "instaneous" response to
   technical typing without degrading the rest of the system
   too much.

4) When a proc accumulates 30 seconds of CPU time  clock.c sets
   the 0200 bit in the process flags (LSCHD).
   This required a fix to ps.c as he sign extended this byte
   field.  Several things check for the the LSCHD bit being
   on and give disfavored scheduling if it is on.  Setpri()
   currently adds 13 points (same as nice +13) to calculated
   pri if LSCHD.  Sched() will not boot out runnable proc's
   to bring in a LSCHD proc. Also Sched() will boot out
   all the LSCHD procs before swapping out regular runnable
   procs.  If the LSCHD bit is on, it is assumed the proc
   is a real "cruncher" and will be handled as background
   and not interfere very much with interactive resource
   utilization.  However if the machine is empty, LSCHD procs
   will get full service.
--ghg


Mon Sed 12 15:06:50 1977

Removed accounts "test2", "test3", "pucc", "dummy" and re-generated file
"/etc/u-seek".  The file was too large when these accounts with their large
uids were around.  Installed new version of "la" to use buffered output.
--J. Bruner

Tue Sed 13 12:16:37 1977

Made "pwd" suid root;  if you are able to chdir into a directory
you should be able to print its full path name, even if the 
directories themselves cannot be read by the user.

Removed /bin/pwd since /usr/bin/pwd already existed and is exec'd
by remind and pucc.

--b.c.

Tue Sed 13 12:24:27 1977

Copied /usr/bin/pwd to /bin/pwd since sa shows it to be heavily used.
--b.c.

Wed Sed 14 14:44:34 1977

Moved new versions of "ls", "ps", and "la" to /bin, and set sticky bit
on "ls" and "ps".  Deleted /usr/bin/la.  These versions use the seek-
file /etc/u-seek for login names (they will use /etc/passwd if 
/etc/u-seek does not exist), and this results in much better response
times.  Put sources for new "ls", "ps", and modified "getpw" subroutine
(same syntax as old one) in "/src/new/seek".  To take advantage of
the seek file in routines which call "getpw", it is merely necessary
to recompile them with the new "getpw" object code.

Moved "mskf" from /bin/new to /etc (creates the seek-format file).
Source to /src/new/mskf.c   Added a line in /etc/new-user which
automatically runs /etc/mskf so that the seek file is updated when
new users are added.
--J. Bruner

Fri Sed 16 16:02:49 1977

Renamed "tty:" to "tty=" as the former didn't let users with 8 character
names logon.  Recompile /src/new/ps.c - edited to /bin.
-ghg

Fri Sed 16 22:11:17 1977

Edited /bin/mail to do the following:

	- disallow "user" account from running mail program.
	- if mail is to be looked at, the files ".mail" and
	   "mbox" will be searched in the login directory,
	   not the current directory.

-TGI

Fri Sed 16 22:15:06 1977

More:
	Found/fixed the "g"lobal command bug in Xed and Ed.
	Added "s" command, does an automatic "w" and "q" sequence.
	Added "-c" flag: -c21 sets the crt screen depth to 21 lines.
	Fixed a host of small bugs in the backup() code.
	Fixed the "/**" command bug which used to blow up editor.
	Added apl-mode printing of overstruck characters for Reeves.
-TGI

Sat Sed 17 21:10:30 1977

Edited /bin/mail:

	- will call /usr/bin/ned if call is
		% mail - people ...

	- won't mess up mbox file if interrupt typed
	  during save operation.

	- won't mess up others' mailboxes if interrupt
	  during send operation.

-TGI

Mon Sed 19 07:21:34 1977

Ncheck blew up during partial dump this morning.
"out of core - increase NDIRS" message.
Increased NDIRS from 787 to 1400, recompiled, edited to /bin.
-ghg

Wed Sed 21 09:31:08 1977

Edited /src/new/od.c to accept -x as well as -h for hex listing.
New source to /src/new, bin to /bin/od.
-TGI

Thu Sed 22 21:47:50 1977

Down to less than 300 free inodes on /dev/hp1.  Copied
/usr/ingres to /dev/hp7 and mounted /dev/hp7 on /usr/ingres
after cleaning out /usr/ingres.
-ghg

Fri Sed 23 07:34:50 1977

Changed as68 and as80 to create mode 600 binary output and listing files.
Edited to /usr/bin.
-ghg

Mon Sed 26 10:43:04 1977

Updated /usr/bin/xsh., /bin/sh so $T no longer has
the format "ttyx".  Instead, the parameter has only
the character ("x").  Also added the parameters
$C - current time 00:00 format, and
$K - current date 00/00 format.

Updated /bin/ls to print out size of files using the same
format for both bytes and blocks (-s flag).

Updated /bin/ed, /usr/bin/[qxn]ed, /usr2/xed to simplify
apl-mode editing.  In apl-mode, the characters '[' and '^'
have no special meaning.  This is due to the large number
of complaints I have received over the past week or so
about how these characters couldn't be edited.

Sources to /src/new/ls.c, /src/new/xed.c, /src/new/sh.c
-TGI

Mon Sed 26 11:03:54 1977

Changed /usr/bin/help to print only 3 columns instead of
4 on directory listout.  This reduces the continuous beeping
stuff from the terminal.  Source to /src/new/help.c
-TGI

Mon Sed 26 12:53:17 1977

Created a file called "/etc/.what" which contains a short one-line description
of each file in the directory.  This file can be used in several ways:

% cd /etc
% grep dtab .what			To find out what "dtab" is

% ls^cat - .what^sort			To print each file in the directory
					alongside its description.

The last command shown will point out those files which have an unknown
purpose in life;  if you find such a file and know what it is, please
edit the .what file.  Also if I have made any mistakes please correct them.

When I get around to it (or if someone else feels ambitious) there
will be .what's in /usr/bin, /bin, /usr/lib, and so forth...

--b.c.

Wed Sed 28 10:24:51 1977

Changed src/s5/putc.s (fcreat) to make mode 644 mode files
instead of 666 mode files.  Edited to /lib/libc.a.  Recompiled
/src/new/mail.c and notified reeves to recompile apl.
-ghg

Wed Sed 28 13:27:54 1977

Changed /bin/mail to use buffered output when printing
out the .mail file to the tty.
Source to /src/new/mail.c
-TGI

Fri Sed 30 23:05:31 1977

Xchanged the terminal from old consulting office with the
one from terminal room which ran at 300 baud only.
-TGI

Sat 
Edited /src/new/seek/ls.c to correct differences in formats 
with/without -s flag.  Binary to /bin/ls with sticky bit set.
-TGI

Sat 
Put "blank" program into /etc/rmall mode 700 (for now).  Documentation to
chapter 8 of the manual, source to /src/new/rmall.c (mode 600).  Also
changed the documentation on "chmod" in chapter 1 so that non-system jocks
could understand it (old documentation appended to revised text).

--J. Bruner

Sat Oct  1 13:20:47 1977

Put in "slog" after re-compiling it from the source from
Jimmy's machine.  (Changed the name of the editor from
/bin/ned to /bin/ed)  Made no other changes--apparently
the binary had been "trashed" somehow.  Source to /src/new/slog.c
New version handles the date properly (compare to previous
entries in this file).

Corrected the minor bug in the disk-accounting program "/etc/dlm"
which caused strange results if no mail was sent.  Source in /src/new
updated.

--J. Bruner

Thu Oct  6 13:07:24 1977

Patched /lib/f4p/f4p3 to change "None of the errors detected" message
to read "No compile errors detected".
--ghg

Fri Oct  7 15:24:38 1977

Replaced "rmall" and "dlm" with newer versions for minor corrections:
"rmall" assumed the first two entries in the directory were "." and "..",
it now checks entries and compares them to these special names.  "dlm"
has a new option.  "dlm -z" will zero the total count of days in excess of
quota for all users who have been over for more than 3 days.  (It does not
reset the consecutive count, however).  This is intended to be used after
a "rmall" on users in violation of their quotas to remove their names from
the summary of disk violations.  New versions of these were put in /etc,
sources to /src/new.

--J. Bruner

Sat Oct  8 09:58:11 1977

Added "runtty" to /bin (source to /src/new).  This program can be used when
Unix is running single-user to bring up login on a selected terminal, or can
be used in multi-user mode to start up a single login at a terminal which is
turned off.  If "runtty" is used to start up a terminal while in single-user
mode and the system later goes multi-user, the terminal will not be turned on
until after that process terminates.

"runtty" can only be run by super-user.  It should not be used on terminals
which are turned "on" in multi-user mode.  As soon as I get it completed, 
documentation will be in /usr/news/manual/chapter8/runtty.

--J. Bruner

Thu Oct 13 14:22:54 1977

Moved the following files around:

	/src/new/ls.c to /src/new/ls.c.old
	/src/new/ps.c to /src/new/ps.c.old
	/src/new/getpw.c to /src/new/getpw.c.old
	/src/new/seek/ls.c to /src/new/ls.c
	/src/new/seek/ps.c to /src/new/ps.c
	/src/new/seek/getpw.c to /src/new/getpw.c

(Removed the directory /src/new/seek)

--John Bruner

Fri Oct 14 17:05:15 1977

Changed /usr/bin/xed and /usr2/xed.
Fixed a few minor bugs.  Created an annoyance for
APL people, first line number after "a" was [ 1 ]
instead of [ 0 ]
Fixed now.
-TGI

Mon Oct 17 09:57:06 1977

Put in changes to allow 64-terminal-unix to run.

1) changed init:
   a) bigger table of terminals (75)
   b) changed mapping function for /etc/utmp to make all names legal.

2) changed login:  same as b) in init.

3) low.s: remove code of lq (Potter printer), add vectors for DA-11
          and 4-th DH-11.

4) dev/dh.c: changed NDH to 4, added csr (160100) to table.

5) dev/da.c: fake dev driver for DA-11 unibus link to insure correct loading.
             real driver will follow when Patrick's machine comes up (if ever).

--ghg

Thu Oct 20 09:24:07 1977

Went through chapter 10 of the on-line manual and took out all of the
blank lines at the bottom of the files.  These lines were an irritation
since they caused the important material to scroll off the screen 
before <ESC> could be used to stop output.  Also tried "help" and 
discovered that it did not process two-digit chapter numbers.  Added a
"kludge" that allows 2-digit numbers.  Source is in /usr2/bruner/tmp/help.c,
binary in /usr/bin.
--J. Bruner

Thu Oct 20 14:55:09 1977

Modified the seek-version of "getpw" so that it returns -1 if:

	1) The seek file cannot be opened.
	2) It cannot seek to the desired address.
	3) The record for the specified user-id starts with a null.

Conditions (2) and (3) are the new conditions, and should make "ls" and
"ps" print out the numeric UID for illegal user-id's instead of the
name of the last user in the seek file or merely a null field.

"ls" and "ps" were re-compiled with the new "getpw" and objects put in
/bin/new.  If all goes well, source to "getpw" (now in /usr2/bruner/tmp)
will go to /src/new shortly.

--J. Bruner

Sat Oct 22 10:07:06 1977

Installed Bruner's getpw.c (uses seek-file) in /lib/libc.a.  Source is in
/src/s4/getpw.c ... original is getpw.c.orig.
Forked off a copy of UNIX for Potter's 11/70.

--ghg

Tue Oct 25 14:59:27 1977

Edited new version of mesg to /usr/bin to allow
"% mesg -" to show current permission without
changing.
From hds.
-TGI

Tue Oct 25 15:10:24 1977

Added pages to /usr/bin.  Lists pages used by current uid.
Also by hds.
Source to /src/new/pages.c
-TGI

Fri Oct 28 09:05:18 1977

Installed "submit" to /usr/bin for mowle's assignment stuff.
Source to /src/new.  Will be changed shortly to support several
classes/instructors.
-TGI

Fri Oct 28 09:21:00 1977

Installed new version of shell in /bin.  Source to /src/new/sh.c
Previous /bin/sh to /bin/sh.tmp just in case.
"/usr/bin/xsh." removed since not necessary anymore.
New shell handles interrupts more intelligently.
Also "qsh" command to display $ parameters.  Closing quote
on a string not required.  Plus a few other minor fixes.
Most of stuff from Besemer's shell.
-TGI

Sat Oct 29 09:01:01 1977

Changed maximum (positive) nice pri from 20 to 30 in ken/sys4.c.
--ghg/Bruner

Sat Oct 29 12:51:14 1977

Modified shell to eliminate two principle problems:  (1) $U variable
definition was trashing other shell variables; (2) "echo" flag (-e)
did not work correctly.  Source in /usr2/bruner/tmp/sh.c, new object
in /bin/sh.

--J. Bruner

Tue Nov  1 07:42:24 1977

Fixed bug in "delrem".  Changed "setuid(1)" to "setuid(3)" (bin) as bin
is the owner of /etc.  Remind/delrem should now be working again.
--ghg

Wed Nov  2 12:31:38 1977

Installed new C version of write in /bin/write
Source to /src/new/write.c
If any problems, move /bin/write.tmp back
-TGI

Wed Nov  2 12:32:57 1977

Bugs in shell (/bin/sh) fixed.  $U added for uid.
Interrupt processing fixed.
Source to /src/new/sh.c
-TGI

Thu Nov  3 09:50:54 1977

Added a test account "testac" to aid in debugging the
"ac" program to keep a record of known connect times.
--J. Bruner

Thu Nov  3 12:03:28 1977

Changed /bin/mail to creat() the editor file
mode 0600 before calling editor.  This ensures that
nobody else can look at mail while being created.
Also fixed bug that didn't unlink() same file upon
exit.
Source to /src/new/mail.c
-TGI

Thu Nov  3 12:07:23 1977

Changed /usr/bin/xed & /usr2/xed to fix minor bug:
If at line nn and type "-nn", gripes about not being
able to find line.  If before line "nn", would just
give line 1.  If after, give line ".-nn".  Ok now.
Source to /src/new/xed.c
Probably fix in /bin/ed shortly.
-BEEP

Thu Nov  3 16:49:11 1977

Edited new when to /usr/bin
Unless explicitly specified, only the last occurrence will
be displayed.
Source to /src/new/when.c
-TGI

Fri Nov  4 14:02:20 1977

Minor change to "ps" -- now prints 24 characters of command line in "long"
mode and 72 characters of command in "short" mode.  New source to /src/new,
object to /bin.

--J. Bruner

Mon Nov  7 08:17:24 1977

Modified ken/clock.c to keep various Kernel Timing statistics.  New 
"/usr/sys/stats.h" file which has counters in "stats" struct.  Also hp.c
maintains count of RP04 transfers.  This code is conditionally compiled in
if "STATS" is defined in param.h.  Also changed dev/tbl.c to add to allow
a user job to extract statistics by reading "/dev/kt".
--ghg

Tue Nov  8 08:13:34 1977

Updated /usr/bin/bounce to include the date/time of
problem report.  Source to /src/new/bounce.c
-TGI

Wed Nov  9 11:39:32 1977

Updated /bin/who to print out in same format as when.
(Inserted blank between user name and tty number columns)
Source to /src/new/who.c
-TGI

Sat Nov 12 09:38:40 1977

Modified "nicer" system call in "sys4.c" so that any user could lower
his/her priority via "nicer".  [Most of the code is stoled from "kill"]
A "nicer" on pid 0 means to "nicer" all processes at the current terminal
with the current UID.  Modified the C program nicer so it wouldn't
reject if not super-user.  Source to /src/s2/nicer.c, object to /bin/nicer.
Documented the "nicer" command into chapter 1 of the manual.  Will also
document the system call as time permits.
--J. Bruner

Sun Nov 13 10:01:39 1977

1) New Basic from Steve Mahler copied into /usr2/basic.. Binary to
   /usr/bin/xbasic.

2) DA-11 Doesn't work to 11/45.. seems to be plugged in backwards or
   something like that.

3) Added last kernel PC (if not at "waitloc") to /dev/kt.

4) Expanded dev error printouts in dev/hs.c

5) Fixed up conf/mk-no-rs-unix to make a /deadstart/no-rs04-unix
   which will run with the split swap mods in.

6) Changed Houston driver, dev/ep.c to grab its buffer from the disk
   buffer pool.  This makes an extra disk buffer available when Houston
   is not running.

7) (Patrick's Machine)  Resysgened with ".fpp=1" in conf/m45.s

--ghg

Mon Nov 14 08:52:35 1977

Updated /usr/bin/qcr (/usr/bin/create by link) to check
properly for "file already exists".
Source to /src/new/qcr.c
-TGI

Tue Nov 15 14:11:00 1977

Added to /usr/bin the accounting daemon "ktd" and the corresponding program
"usg".  Documentation to chapter 8 of the manual.  "ktd" samples /dev/kt
at specified intervals and averages the values.  It writes records into
the file /usr/adm/ktmp after a specified number have been taken.  The "usg"
program reads /usr/adm/ktmp and prints out histograms of system usage.
--J. Bruner

Wed Nov 16 15:13:38 1977

Changed /src/new/who.c to print more stuff on "who -r".
--ghg

Thu Nov 17 08:20:55 1977

Updated /bin/su to log all unsuccessful attempts at su password
as well as successful logins to super user.  Source to /src/new
-TGI

Thu Nov 17 13:37:29 1977

New version of /bin/login logs all attempts to login
as root as well as successful ones.
Source to /src/new/login.c old source to /src/new/login.c.old
Old binary /bin/login.old mode 0
-TGI

Thu Nov 17 16:43:24 1977

 procedures "process" and "getppid" in C library (after testing to make sure that it work okay with new entries!)put sources in /src/new as well as
putting documentation into HELP files.  
--HDS

Fri Nov 18 10:06:44 1977

Fixed length of line for "short" form output from "ps".  When the "-l" flag 
was not used, long commands tended to overflow to the next line.  Minor
fix, source to /src/new/ps.c, binary to /bin/ps.

--J. Bruner

Sat Nov 19 17:22:39 1977

Changed ken/alloc.c to sleep on &lbolt and print "WAIT XXXX on dev x/y".
where XXXX is "inodes" or "space".  Process is put to sleep at PFNT (-3)
priority until more resources are available.  Process is not blown off
as was formerly the case.
--ghg

Sun Nov 20 17:07:17 1977

Xed:  New command added: "J" will
join a line to the one ahead of it,
making one line from two.  Stolen
from editor in /v/z/std_src/s1 or ...s2
-TGI

Tue Nov 22 09:57:48 1977

New "suid" program--accepts login names as well as numerical UIDs.  Thus,
the following would be equivalent:

# suid 0
# suid root

Also does a nice(-5) before changing UID.  Linked /usr/bin/become to
/usr/bin/suid so that one can also say:

# become bruner

for instance.

			--J. Bruner

Tue Nov 22 17:22:39 1977

removed nice(-5) call from suid program. otherwise unchanged
--hds

Sun Nov 27 12:34:54 1977

New DA11-B device driver (/dev/da) to /usr/sys/dev/da.c. In both
11/70 and 11/45.  It has a couple of rough edges yet and tends
to hang the channel a lot. Copies RK05 pack to 11/70 in about 2 min.

New RP04 driver with expanded DEV error printout.  Also prints out
previous CSR, TRKSEC if "UNSAFE_TDF" is #defined.  This is to help
Rogers track down TDF unsafe problems (we got 2 TDF Unsafes last night).

New "dd" program to /usr/bin/new/dd - mods by Jimmy.
--ghg

Tue Nov 29 13:50:20 1977

New versions of accounting daemon "ktd" and summary program "usg" added to
/usr/bin.  "ktd" now keeps track of users logged in in two groups--system
terminals and other terminals.  (Eventually will be expanded to include
technical typing terminals as well).  "usg" was modified to meet the change
in "ktd".

--J. Bruner

Tue Nov 29 18:00:40 1977

"ktd" moved to reside in /etc as other "daemons" do.
Added to /etc/rc a line to start "ktd" when production system
boot occurs.
--J. Bruner

Thu Dec  1 17:58:56 1977

changed sys4.c to remove +30 restriction on nice and nicer system calls.
unused code now has comment brackets around it to make possible reconversion
easier.
--HDS--

Fri Dec  2 05:56:18 1977

From ghg Thu Dec  1 09:43:45 1977
re: RP04 dev error processing changed

Due to the recent rash of RP04 drive UNSAFES and controller hangups,
I have rewritten the error processing code in the RP04 dev driver.
It will attempt automatic recovery of most of the errors we have been
having lately (I hope - code not tested yet).  The halt() has been 
removed for recovered data errors and recovered controller errors.

1) If drive goes unsafe - attempt is made to clear UNSAFE with software.
   If unsafe cannot be cleared, system halts with note to call for help.

2) If drive goes unsafe with heads retracted - system prints out
   message to turn drive off and back on again, then press CONT
   on front panel.

3) If other error, an attempt is made to clear it and it is retried 10
   times.  If error is not cleared or cannot be retried after 10 times
   system halts.

4) The UNIX should not go into the "OPERATION INCOMPLETE", "REG mod
   REFUSED" loop if WRITE-PROTECT is accidently set on drive.

If the system halts during RP04 error recovery things are probably pretty
bad and G. Goble, Bill Croft, Craig Strickland (tgi) , Jim Besemer, or
Joe Rogers should be notified.  The UNIX will definately need a software
recovery if this should happen.  The following people are qualified to
perform a UNIX reboot/recovery: Geo. Goble, Bill Croft, Jim Besemer,
and Craig Strickland (tgi).
--ghg


Sat Dec  3 08:39:47 1977

New motd -- if file /usr/news/trmsg/ttyx (where "ttyx" is terminal being
logged in) exists, it is printed following the other login messages.  This
way, warnings about flakey keyboards, etc. can be printed on specific
terminals.  Source to /src/new/motd.c (old source to motd.c.old), binary
to /bin.

--J. Bruner

Tue Dec  6 07:44:15 1977

Changed to RP04 driver:

1) added approx 30 sec "hard" wait delay after UNSAFE detected before
   attempting to clear controller.  The last several unsafes have shown
   the abortive condition still exists about 10 seconds after the initial
   fault occured and required 2 attempts to clear things out.

2) changed the default value if "hpsort" from 1 to 0.  This allows better
   interactive response.

Changed TTY driver:

Due to recent abuses of the following features they have been restricted
or removed:

stty blitz - restricted to su only as people indiscriminately blitz others
terminals.  If there is a long job with a tty file open running in background
the terminal is dead until the long job terminates.

stty spy - removed as even some of the consultants have been abusing it.

--ghg

Tue Dec  6 10:56:16 1977

Disabled code in /bin/mail for getting the
mailing name from the line in /etc/utmp.
This is to stop stuff like "From user ..."
and "From santa ..." by "(login user)"
and then exiting the shell (or help)
back to the original shell.  This left
the user logged in with a modified /etc/utmp
line, which was then used by mail.
Source will go to /src/new/mail.c when
/dev/hp3 is reloaded with sources.
-TGI

Wed Dec  7 09:34:23 1977

New /usr/sys/dev/hp.c RP04 driver.  Has longer delay and a bunch more
clears and resets in error/unsafe processing as unsafes haven't always
been getting cleared on first try.  sysgen to /deadstart/new-unix.
--ghg

Wed Dec  7 14:16:29 1977


put new pascal software from CUNY into system.  command to invoke compiler
is /u/bin/pc -- command to invoke runtime interpreter is /u/bin/pi --
pass 1 of compiler is /lib/ppass1 -- pass 2 of compiler is /lib/ppass2 --
error listing file is /lib/pclist -- /u/bin/pascal is linked to /u/bin/pi
so compiler can call up interpreter after compilation for load and go mode
of operation.  for help, see help pc and help pi or help pascal.

			--- HDS ---

Sun Dec 11 23:00:05 1977

New /usr/sys/dev/tc.c dectape driver edited in.  Checks for 5 volt power
supply failure in remote controller and issues message to "kick here"
on dectape controller.  This is the only known way to get the drives
running again.  The hardware staff has been unable to come up with a
new 5 volt board in over 4 months.  Also decreased NBUF (in param.h) from
41 to 40 since the printf's snarf up lots of Kernel data space.
--ghg


Wed Dec 14 02:00:14 1977

Moved /u/schleif, /u/ccs, and /u/keating to
/usr2.  Keating's job filled hp1 around 1:40.
Seemed simplest thing to do at the time.
-TGI

Mon Dec 19 14:31:38 1977

New "motd" processor in /bin.  In addition to previous features, it
looks for a file /usr/news/trmsg/lname, where "lname" is user's login
name, and prints the contents if it exists.  This allows special banner
messages for specific users to be printed.  Source to /src/new/motd.c,
documentation in chapter 1 of manual.
--J. Bruner

Tue Dec 20 13:12:51 1977

Cleaned up /src.  Dumped old 6800/8080 stuff and fc fortran and winasm
stuff to tape.  Also moved most of stuff in /src/new to /src/s[12].
Commented out "/etc/ktd" line in /etc/rc.... Can't see running stats
on idle system over break.
--ghg

Thu Dec 22 13:49:39 1977

New "file" program to /usr/bin.  Checks for apl, aplws, new archive, PDS,
and some other misc files.  src to /src/new.
--ghg

Sat Dec 24 04:58:42 1977

Added $R (random decimal digit), $S (user name) to
/bin/sh.  Previous binary to /bin/old.  Source to
/src/s2/sh.c
-TGI

Sat Dec 24 12:48:30 1977

Edited /bin/su last night to correct stty()
call from forcibly setting ECHO after
password: prompt.  Now old stty() stuff
is remembered.
Source to /src/s2/su.c
-TGI

Sun Dec 25 18:29:35 1977

Added -r flag to /bin/ps.  Old bin moved to /bin/old/ps.
Source to /src/s2/ps.c
Edited /usr/news/manual/chapter1/ps to reflect added flags
"z", "u", and "r".
-TGI

Sun Dec 25 20:38:28 1977

Edited /src/s2/tee.c to creat() files mode 0604.
New binary to /usr/bin/tee
Old to /usr/bin/old/tee
-TGI

Tue Dec 27 19:05:29 1977

nm was blowing up on binaries with segments over 16k words. Caused by
signed offset to seek (address over 32768 and went negative).  Added
unsigned seek subroutine (useek) to handle problem.  Source to /src/new,
binary to /bin.
--ghg

Wed Dec 28 00:09:19 1977

Edited /bin/ed, /usr/bin/xed, /bin/mail.
Most known bugs in mail fixed.  Code for dead.letter
file fixed.  Editor interface code added.  Receipt
of a quit during editor input will abort the mailing.
A SIGTRC (#5, trace/BPT) is sent to the editor who
will then unlink temp file and exit with error status.
Mail then unlinks all scratch files, informs the user
that no mail was sent, and exits.

Editor command abort added for mail.  Exits with error
status after unlinking temp file.

Global command fixed to handle alternate forms of the
g and v commands correctly.  The following are now
accepted accurately:

g/text/p		v/text/p
g/text/			v/text/
g/text			v/text
g/			v/
g			v

All of the above perform identically (assuming for the
last two that the saved string is "text").  This change
required removal of the verify command (v).  It was
practically unused anyway.

Updated the help command format in the editor to
supply command syntax instead of it being a news
type of command.

-TGI

Fri Dec 30 09:12:42 1977

Fixed bad block check routine in rino.  Src to /src/s2/rino.c.. bin to /bin.
--ghg

Sat Dec 31 17:58:33 1977

Changed suid to call shell without "-" so he
won't run .startup file.
-TGI

Sat Dec 31 23:05:49 1977

Fixed /etc/mskf so it wouldn't go crazy when fed a sorted
/etc/passwd file and there were a few dup entries.  He wasn't
checking for EOF on his /etc/u-seek file when building it
and reading part back to see if already in use.
Source to /src/new/mskf.c
Bin to /etc/mskf
-TGI

Mon Jan  2 09:52:48 1978

Various changes over last couple of days:

1) Changed ken/alloc.c to check for pending kill signal after
   sleep on lbolt  when waiting on more inodes/blocks.
   If kill signal pending, exit without assigning resource.
   This problems has caused a couple of deadlocks on test time.

2) Changed ken/fio.c same as 1). for file descriptors.

3) New system call:  52 = wakeup.  Accepts single arg in r0
    and executes internal kernel wakeup(arg). Mostly usefull
    for debugging new device drivers, etc.  Must be su for
    this call.  Changed ken/sysent.c, and code installed in
    ken/sys4.c  Also C library support routine "wakeup.s" to
    /src/s5, binary to /lib/libc.a and /lib/old/libc.a.  User
    program (by TGI) to read 1 octal arg and issue sys call
    to /src/new/wakeup.c, bin to /bin.

4)  Fixed bug in tty driver TGI found: Tabs were not being expanded
    correctly if running in half duplex (-echo) mode.  Fix consisted
    of setting t_col = 0 in routine ttyinput() if a newline (or cr)
    was received.

5)  New (version 7) C - compiler and other stuff from Bell was installed
    in system.  There will be a more detailed entry later in this file.
    Currently the "cc" command runs new compiler and "occ" runs
    old compiler.  New compiler requires new library format, new ld,
    new as.  Use "arcv libx.a" to convert libraries to new version 7
    format.  "% file libx.a" will tell you kind of lib (ver6 or 7).
    Old ar moved to "oar".

6)  Running with new ep dev driver (not fully debugged yet!!) which
    should handle any mix of up to 64 Houston and Centronics
    printers on serial (upto 19,200 baud) lines.  Room 134 is currently
    near freezing and too COLD to attempt to run Houston.  The
    ep daemon (epd.s) will have to be modified to handle overprinting
    for the Centronics.
--ghg

Mon Jan  2 12:49:19 1978

Fixed su to hack quits, interrupts, and hangups properly.
Source to /src/s2/su.c
Bin to /bin/su
-TGI

Mon Jan  2 15:00:37 1978

There were a whole wad of files in /bin and /usr/bin
that weren't stripped, so I stripped them.  Freed up
quite a bit of storage.
-TGI

Fri Jan  6 13:43:16 1978

Put in Mowle's printer. /dev/67.  NEW:

/etc/67d for daemon and new dev/ep.c to drive it.  ALso changed opr
, lpr, lpd, epr, epd to put in site messages... any problems boot
unix.... this stuff on new-unix.... more later.
--ghhg

Tue Jan 10 08:09:12 1978

Changes to opr.c lpr.c epr.c 67r.c epd.s lpd.s 67d.s to "lock up" so
people can't stick own daemon files in print Q.  lpr, epr, 67r
can only be run from opr now and the daemon Q files have sticky bit
set (mode 01000) and daemon will only dequeue files with that bit
set.  Sources in /src/new, binaries installed as follows:

/lib/lpr	suid root centronics spooler
/lib/epr	suid root Houston spooler
/lib/67r	suid root Mowle's printer spooler
/etc/lpd	suid daemon Centronics daemon
/etc/epd	suid daemon Houston daemon
/etc/67d	suid daemon Mowle's daemon

/bin/opr	suid root spooler select routine
--ghg

Wed Jan 11 17:50:10 1978

made modification to write that TGI put in 12/30 which checks sender
to see if he has his messages on so receiver can reply.
bug was that if one redirects from a file,ex: write tgi<dummyfile ,
 dummyfile replaces standard input as file
descriptor 0. TGI's write checked file descriptor 0 for write 
permiission for the other guy's reply so unless file has write access
for the world, write would blow up!  Changed it so it checks sender's
file descriptor 1 instead. seems to work o.k.!!
source to /v/tgi/src/write.c  (where it came from!) , binary(stripped)
to /bin/write.
HDS


Thu Jan 12 14:32:02 1978

put corrected copy of write.c into /src/new as well as /v/tgi/src.
HDS

Sat Jan 14 14:42:35 1978


Changed xchess so that it's save file (chess.out) will be created mode 604
instead of mode 666 like it was before.  Sources in /usr/xchess and 
/usr/xchess/x changed (file is savreg.c) so "creat" call is 604 instead of
666.  Did not recompile since only had to patch one word in binary xchess.
Word at location (in db) 22334 (or thereabouts) was 666, changed to 604 and
it now works properly!
HDS


Sat Jan 14 21:47:24 1978


changed creat mode 604 in xchess to mode 644 for compatibility!
HDS

Sun Jan 15 15:51:58 1978


System changes:

1) Installed version 7 filesystem superblock format.
   Has number of free blocks and inodes, filesystem
   name (unused aat moment) and pack name (also unused)
   at end of superblock.  Changed icheck to setup initial
   free/inode counts when freelist is constructed with
   -s option.  Changed ken/alloc.c alloc(), free(), 
   ialloc(), and ifree() to maintain block/inode counts
   on incore superblock.  Df was changed to get free
   block/inode counts from superblocks which resulted
   in a (real time) speed up of quite a bit.  The sync()
   in df for every filesystem was changed to just one
   sync() at the beginning.  The changes affecting
   both df.c and icheck.c are conditionally compiled in
   with the defination of "NEWFS".  Source of icheck.c
   and df.c to /src/new, binary to /bin.  /usr/sys/filsys.h
   was changed to define ver 7 superblock.  Recompiled
   the entire ken and dev directories and sysgen to
   new-unix.

2) ken/iget.c itrunc() - changed the 512's to 510's.  Minor
   bug fix which currently caused no damage, but was going
   to interfere with future changes.

3) ken/iget.c iupdat() - changed bwrite to a bdwrite, this
   writes out inodes faster.  Also cleared IUPD and IACC
   flags in inode when it is written back to disk.  Nobody
   was clearing these bits, causing almost all inodes to
   be constantly written do disk everytime sync() came up.
   This is the reason that sync() and umount sometimes took
   over 1 minute on heavy loads.  The "inode cache" mods from
   Toronto made this problem much worse since there were 
   almost always 225 inodes to write out.

4) dev/tty.c ttwrite() - Put a spl5()/spl0() pair around last
   call to ttstart().  This fixed the bug of dl-11's occaisionally
   dropping characters from 1 character writes.  Also edited
   to Patrick's machine.

5)  dev/tty.c ttyoutput() - Added code to map control characters
    for Peter Hallenbeck's screwball modified Lear terminal
    rom.  Added STTY option "PDH" to set mode in effect in
    sys/tty.h.   Changed stty.c to set appropiate mode bits.
    Stty.c to /src/new, bin to /bin.

--ghg

Wed Jan 18 01:28:35 1978

Put a new version of stty command.  If a file "/etc/sttyspy" exists, and
if a user does a speed change on his terminal, stty logs the date,time,
the user name, and the terminal in this file which is mode 600 owned by bin.
Obviously, users can still use system call to change speed if so desired.
However, this should still catch most violations of the rule.
Hopefully, in the near future, kernel code will check to see if the caller
is uid root and fail if not so. Then speed changes could only be done by
using a suid=root program such as the /bin/stty which logs these changes.
Source to /src/new/stty.c, binary to /bin/stty (mode 4705 root).
HDS

Wed Jan 18 17:48:00 1978

Reinstalled the checks to limit nice/nicer to +30 in ken/sys4.c
Anyone could just type "nice -129" and end up with a nice --127
because of byte wrap around.  These were the checks that HDS
removed last Dec when He and Bruner were having all the nice
wars in the kernel.  Sysgened to /deadstart/new-unix, reboot
on production at 17:30.
--ghg

Thu Jan 19 10:25:05 1978

New program "l567.c" to /src/new and /u/bin  to upload 567 comsim
files from prompt 8080's for Prof Mowle.
--ghg

Fri Jan 20 13:46:51 1978

Changed /u/sys/sbuf.h (structure returned by stat & fstat) to fix minor error.
Entries in structure for major and minor device numbers were reversed from
proper order.  Swapped them into proper position.
HDS

Sat Jan 21 07:01:11 1978

/usr (/dev/hp1) and /usr2 (/dev/hp2) are now so full that
dump/restor cannot be used to back them up.
New shell files in /etc "full-hp1.dd" and full-hp2.dd".
It is now not possible to reload individual files from a full dump unless the full dump is loaded
(via DD) back onto a blank 65535 block disk filesystem..
--ghg

Sat Jan 21 16:50:11 1978

Changed /u/bin/user-shell to exec in "help" with "-" in argv[0] so
help won't allow use of "!" commannd.
--ghg

Sun Jan 22 12:01:07 1978

Cleaned out device drivers which aren't used and put them in /usr/sys/dev/other.
Deleted their binaries from /usr/sys/lib2.  This is so compile and load
of the whole system goes faster.
--ghg

Sun Jan 22 15:00:17 1978

Due to the change in procedure for full dumps, it was necessary
to change dump to be able to update the dump date in /etc/dtab
without taking a dump (which is done with DD).  A "t" flag
was added to do this. I. E. "dump t /dev/hp1" will set the dump
date/time to the current date/time just as if a full dump had
been made now.  Src to /src/new. bin to /bin.
--ghg

Tue Jan 24 09:26:14 1978

New version of "cat" in system -- checks if any specified input file (may
include standard input) is the same as the standard output file.  If so, no
operation occurs and an error message is printed.  Source to /src/new/cat.s,
binary installed (last weekend during system test time -- no complaints)
in /bin.

--J. Bruner

Wed Jan 25 11:01:03 1978

changed disk allocation for chess to 250 or so, so it wouldn't get zapped

Wed Jan 25 15:07:24 1978

Added program "resin" to /usr/bin for Doug Bartlett.  Program
to accept resumes for HKN resume book.
--ghg

Wed Jan 25 18:05:02 1978

Installed program to recursively chown a directory and all entries
in it to a specified UID.
The syntax is /etc/rchown uid name, where uid is a decimal user id,
and name is a directory or file name.
Source to /src/new/rchown, binary to /u/bin/rchown.
--HDS

Fri Feb  3 21:56:53 1978

removed all of those duplicate files in usr/chess in the sub-directory x.
there were a couple files in it that weren't dupes, so i copied them into
the parent directory, then removed all the dupes.
HDS

Sat Feb  4 10:56:18 1978

Running new Kernel with buffer pool out of kernel D space.
The buffer pool is now split into 2 parts "NBUF1" and "NBUF2"
which replaces "NBUF" in param.h.  NBUF1 buffers (currently 8)
still reside in kernel space.  They are allocated for "getblk(NODEV)"
calls.  These buffers are used mostly for mount superblocks
and scratch space for some device drivers (ep.c).  It greatly
reduced the number of changes needed by allowing this small
pool to remain in Kernel space.  In addition all buffers are
now 512 bytes long instead of 514.  This needed a bug fix in
ken/iget.c routine itrunc() - change the 512's to 510's.
The rest of the buffers (NBUF2) are allocated after the kernel
BSS area and before the Kernel TEXT and are created during
the system startup "core shuffle" in m45.s.  This was necessary
since they are too big to fit in anybodys address space.

The method of addressing the NBUF2 pool is very similar to
the method used to address the currently active user area
"_u".  Memory management register Ka5 is pointed to the
currently active buffer when needed.  The contents of the
buffer may be referenced by "&b" just like "&u" addresses
the user area.  _b is defined absolute 0120000 in m45.s
All of the buffer headers are still on Kernel space.  The
choice of "_b" caused some problems with local variables
in several routines like min() and max() but I changed
the local variables to other names, probably a bad decision.
Since ka5 is used for buffers, the value of "_end" must
be less than 0120000 after a sysgen or the system will
crash because the buffers will overlap the kernel bss area.
NBUF1 buffers may be addressed either by stuffing ka5 and
using &b like NBUF2 buffers or they may be addressed
conventionally with "bp->b_addr".

New sys/buf.h include file, it has extra word in buffer header
"b_par".  b_par contains the value (set in bio/binit()) which
has to be stuffed in ka5 to address this buffer. i.e
*ka5 = bp->b_par; buf[0] is now same as &b[0].
buf.h also has new flag bit "B_XBUF" defined.  This bit is set
by binit if buffer is not in kernel address space.  It is
currently used by getblk(NODEV) to force a NBUF1 buffer
to be returned.  Also a new file "data.h" has been added to
/usr/sys.  This file contains data which is initialized at
load time and therefore can only be #included once, in main.c.
Currently, "maxblk" and "bufsiz" are the only two variables in it.
It is necessary to have bufsiz initialized at load time since
its value is used during the core shuffle in m45.s.  bufsiz is
the number of bytes/64 in the NBUF2 pool.

Since almost everyone who uses the contents of buffers had to be
changed, it is the programmer's responsilibity to make
sure that he handles ka5 correctly.  If you do not mess with the
contents of a large disk buffer, you are probably ok.  If you
must use a NBUF2 buffer (which is the case unless you got it
from getblk(NODEV)), you must do a "*ka5 = bp->b_par" assuming
bp is the pointer to the buffer header.  Instead of using "bp->b_addr",
use "&b" instead.  If any system routines are called which
affect files or buffers or inodes are called which clobber
*ka5, you must reset it from bp->b_par if you want to use
your buffer anymore.  Below is a list of routines which change
*ka5:

ken/alloc.c: iinit(), alloc(), free(), ialloc(), update()
ken/iget.c:  iget(), iput() (via iupdat), iupdat(), itrunc()
ken/nami.c:  namei()
ken/rdwri.c  iomove()
ken/subr.c   bmap()
ken/sys1.c   exec(), wait(), exit()
ken/sys3.c   stat1(), smount()
dev/bio.c    binit(), clrbuf()

Almost anything to do with files, inodes or buffers usually ends up
calling one of the above routines somewhere, including namei(),
readi(), writei() and so on.

There were several changes to dev/bio.c, binit() was changed
to setup XMEM and b_par and also has to deal with a split buffer
pool.  Processes sleeping on &bfreelist now sleep at PRBIO+2 (-48).
Processes sleeping on busy buffers (which somebody else has) are
now PRBIO+1 (-49) and processes waiting on I/O completion are
PRBIO (-50).  Several places where b_flags are manipulated, 
had to be changed to preserve the B_XBUF bit.
Also, because to the large addresses of the extended pool and
to be able to address NBUF1 buffers with ka5, both buffer pools
had to start on a 32 word boundry.  The real address of the
buffers/64 is used several places and this happens to be the
same address need to load the memory management PAR's, hence
the boundry alignment requirement.

None of the device drivers in use on our system (ht, hs, hp, tc)
which are block dev's had to be changed.  Binit sets up xmem bits
in the buffer headers and most dev drivers should handle this for
upto 18 bit addresses (quite a large buffer pool!).  On the other
hand you should look over any home brew dev drivers to make
sure they handle xmem bits correctly.  Also one may find out
some of the hardware doesn't work correctly when 18 bit address
are used instead of 16 bit ones.  This happened with our Dectapes - 
dropping address bit 16 - which dumped buffers all over the
proc table.
	To compile system with buffers outside of kernel space:
1) in param.h define symbol "XBUF"
2) in param.h define NBUF1 as number of kernel resident buffers
   need one for each mounted filesys (including root) + any for
   special device drivers may need. Usually 6 or 8 should suffice.
3) in param.h define NBUF2 to be number of buffers outside of 
   kernel space - try 100 or so. 1 Kwords = 4 buffers.
4) in conf/m45.s make sure "XBUF = 1"
5) recompile, assemble, and link everything.

	To remove from system:
1) comment out #define XBUF in param.h
2) change "XBUF = 1" to "XBUF = 0" in conf/m45.s
3) recompile, assemble and link everything.

For XBUF defined, max value for "_end" in boot-up file is 0120000
For XBUF not defined, max value for "_end" is 0140000

Report any problems to ghg - take crash dump if possible.

There are 2 main reasons for this change:

1) We were completely out of kernel data address space.
   This change should give us another 5 K Words or so to
   allow for future network expansion, etc.

2) The old nunber of buffers (about 35) was totally inadequate
   for the number of processes in the system.  Now the buffer
   pool can be made as large as desired (almost).  The last
   address (physical) must still be below 128K words I think,
   which would allow 108K words of buffers (432 buffers).

--ghg

Sat Feb  4 10:59:17 1978

Changed login to display banner message (via motd) before the "chdir"
call.  This allows one to see the banner message even if ones directory
or shell is not around.  This is useful when filesystems are being dumped
and are unmounted so people can see mesg of system up time.  Source
to /src/new/login.c, bin to /bin.
--ghg

Sat Feb  4 13:46:06 1978

Changed ps - added a "c" flag to print out "p_cpu" instead of
"p_nice", although header still says "NICE".  To be used mostly
for scheduler debugging.  Source to /src/new/ps.c bin to /bin.
--ghg

Sat Feb  4 16:55:42 1978

Changed scheduling - added code to ken/trap.c to count system calls
and add penalty in global system variable "_sysched" (currently 20)
to p_cpu for each sys call executed.  This should tend to discourage
jobs with excessive system calls from tieing up things (Tim Wallace).

Wakeup scheduler on core free, if runin != 0, set to 0 and wakeup(&runin).
This is from Ver 7 Unix notes.

New system call "alarm" = 27. From ver 7.  usage: x = alarm(y)
alarm clock counter (p_clktim in process table) is set to go off
in y seconds. x is previous value of p_clktim.  Alarm(0) disables
counter.  When alarm "goes off" process is given a signal 14 (SIGCLK).

New system call "pause" = 29.  From ver 7. usage: pause()
Pause just does a sleep(&u, PSLEP) which nobody wakes up.  Just
like a sleep forever.  Needs a signal to get out of it.  The C
library call "sleep()" will be changed to use alarm() and pause()
at some future time.  This will eliminate the problem of all processes
being woken up when any sleep terminates.

New signal #14 defined in param.h as SIGCLK which occurs when alarm
system call expires.  This will allow timed I/O on terminals, etc.

Modules changed for alarm/pause:  ken/slp, clock, sys1, sys4.
Clock.c and trap.c were changed for scheduler changes.
Ken/malloc.c was changed for sched wakeup on core free.

Recompiled /src/new/ps.c, bin to /bin since proc table entries are now
one word longer.

New C library support routines /src/s4/alarm.s and /src/s5/pause.s
for above sys calls. Binaries to /lib/libc.a and /lib/old/libc.a.

--ghg

Sun Feb  5 13:06:19 1978

Put in help documentation for new alarm and pause sys calls.
HDS

Sun Feb  5 09:36:15 1978

put C interface to system call "tell" into system.  It returns a long
result.
source to /src/s5/tell.s, tell.o to /lib/libc.a
HDS

Mon Feb  6 11:42:26 1978

Took penalty for system calls out of ken/trap.c and moved to ken/rdwri.c
writei().  Tests showed biggest bottlenecks were from procs doing lots
of large (512 byte) writes and clogging up buffer pool as the disk can
only get rid of 30-50 buffers/sec.
"_sysched" is a global variable which may be patched with db and is
currently initialized to 20.  This penalty is added to "p_cpu" for
each block buffer written.
Also changed ken/slp.c setpri() to add more weight to p_cpu when figuring
actual priority.  Changed p_cpu/16 to p_cpu/8.  Earlier PUSER was redefined
to be 90 instead of 100 which allows a greater range for scheduling user
(cpu bound procs).
Earlier a fix was put in setpri() to change a "p > curpri" to a "p < curpri",
which came from UNIX change notes from ILL-users group meeting.  Several
routines call setpri() to do something to another process (clock, etc).
The "p < curpri" is correct (I believe) (forces a reschedule if true) for 
these cases since a swtch() would then be done to a 
new proc if its pri was better then the current (interrupted) one.
However trap() in ken/trap.c also calls setpri() when finishing up after
a sys call.  This is to presumably get rid of the super good priority
which gets set because of a Kernel sleep() (like -50 for disk I/O, +10
for TTY input, etc).  In this "curpri" is set  to the very good pri
since a swtch() was done to the current proc to restart from a sleep().
The current setpri() "p < curpri" (p is now > PUSER) will never be
less than curpri if the sys call was restarted from a sleep.  Consequently
runrun (and a reschedule not requested) does not get set.  When trap()
returns to the code in m45.s, a check is made for runrun being != 0.
If runrun is != 0, then swtch() is called, else the current proc
just keeps running I think.  Since runrun was not being set on exits
from system calls in which the processes was suspended by a sleep,
I/O bound processes would tend to hog system resources (disk buffers
and clists, etc) as they would just immediately start another sys call
when the previous one was finished.  Every now and then clock or
someone else would set runrun and force a swtch(), but I/O bound
procs would be asleep at -50 pri when most of these swtch()'s occured.
Eventually most I/O bound procs did spend a sec or so "crunching" in
user mode and got swtch()'ed out by a clock caused setpri().
The fix consisted of adding a "if(p > curpri) runrun++" after the 
call to setpri() in trap.c.  If the current system call had been
restarted out of a sleep() then a reschedule would be forced.  The
current processes would now have pri = PUSER + .... and not -50 or
some other good pri.  This will add some system overhead but should
help maintain interactive response to a reasonable level.

Changed ken/slp.c swtch() to not activate a process of p_nice == 127
&& p_pri >= PUSER.  This provides a method of manually stopping another
process for one reason or another by doing a "nicer -127 pid".
The pri >= PUSER is necessary since it would not be wise to stop
a process out of a kernel sleep with all kinds of buffers and inodes
locked up. I don't think anybody in the kernel sleeps at => PUSER.
This happened (proc got stopped in kernel sleep) and left a buffer
busy (indirect block for disk).  Sync does not write out busy buffers
and when system was booted (several sync's done), that indirect
block never made it to the disk.  No icheck was done upon coming up
as things went down in an orderly fashion (wrong!).  As soon as the 
file was touched /dev/hp2 filesystem went to hell immediately.  Even
though the system only ran 1 or 2 secs, there were hunderds of 
multiply allocated blocks, smashed directories, etc.  Fortunately,
a recent dump had been made and all files changed since the dump were
ok and were manually saved.  Boot procedure should probably make
sure all proc's are killed and dead - else request an icheck
at next start up if all proc's weren't killed.
Also ken/slp.c sched() was changed not to swap in a runnable
process if p_pri >= PUSER && p_nice == 127.  This keeps a manually
stopped process from competing for core space.  To restart proc,
just do a nicer anything else but 127 on it.
Ken/sig.c was changed to check for a SIGKIL and set p_nice to 0
if p_nice was > 0.  This allows a stopped proc to be killed and
help clean things up faster in general.  A killed proc isn't
going anywhere except to swap in and die.
--ghg

Mon Feb  6 18:10:17 1978

Put in a "/etc/mpxd&" in /etc/rc to start up network daemon to Potter.
--ghg

Tue Feb  7 08:21:28 1978

Changed ken/slp.c setpri()  "p_cpu/8" back to "p_cpu/16".  Any proc that
had run over 1 or 2 seconds was getting scheduled to the cellar.
--ghg

Tue Feb  7 09:52:34 1978

Programs "nicetty" and "blitz" added to /u/bin.  These programs are super-user
only and cause all processes at a specified terminal to receive a specified
nice value (default is 127) or to be killed off.  Sources to /src/new,
documentation in chapter 8 of online manual.
--J. Bruner

Tue Feb  7 11:01:33 1978

"trino" (read inode from tape) binary in /etc for testing by system staff.
Should work ok, but just in case, be sure magnetic tape to be read is mounted
without write ring in.  Documentation in chapter 8 of the manual, source
currently in /v/bruner/tmp (to be moved to /src/new when I'm sure all of the
bugs are out).
--J. Bruner

Tue Feb  7 20:02:36 1978

Made change to /bin/passwd so that user password will not show up on 
a process search.  Source to /src/new/passwd.c
HDS

******* Gave copy of sys to Okla. *********
Wed Feb  8 13:33:30 1978

Edited "update" to sleep only 20 seconds instead of 300 (5 minutes) between
"sync" calls.  This will keep the system busier but due to power problems
(coal strike, etc.) is safer.

Also -- shell file "trinos" in /etc which runs "trino" for multiple
file extraction.
--J. Bruner

Wed Feb  8 15:41:32 1978

Made same type of change to crypt so it will not show the key on a 'ps'
Source to /src/new/crypt.c
HDS

Wed Feb  8 22:54:59 1978

Login wasn't correctly processing messages for UID's in /usr/news/trmsg/*
caused by my mod of moving the run("/bin/motd") to before the chdir and
setuid calls.  Fixed by having runjob() doing a setuid before the exec.
Source to /src/new, bin to /bin/login.
--ghg

Thu Feb  9 23:03:41 1978

Changed xchess so that it will "nice" itself to 5 before running.  
Also, if you exit normally from xchess, it will create a file called
"chess.score" in your current directory(if possible).  
This file will contain the listing of moves in the game as printed
by the score command.
It also no longer attempts to mail each game to /usr/chess.
HDS

Fri Feb 10 15:15:01 1978

Moved /u/bin/resin to /u/bin/resume and chowned it to hkn on request.
HDS

Sat Feb 11 11:37:23 1978

Changed ken/alloc.c ifree(), moved "fp->s_tinode" from the end to
the second line of executable code.  Sometimes a premature return would
cause inode count (which only df currently uses) not to be properly 
updated.  Changed update() in alloc.c to always force superblock for
rootdev to be written even if it hasn't been modified.  This causes the
time to be better preserved across system boots, losing a few seconds
instead of 5 or 6 hours as sometimes used to happen.
--ghg

Sat Feb 11 11:40:12 1978

This entry is for last Fri.  Something clobbered /bin/dump.  File seemed
to be code for dump, but was only about half the length and got a bus error
when attempted to run.  Recompile /src/new/dump.c, edited to /bin.  There
were no fs problems and last mod time on /bin/dump as approx. 20:00 last
night.
--ghg

Sat Feb 11 12:27:57 1978

New copies of dump/restor called "dump25" and "restor25".  They
are same as dump/restor except long tape buffer is now 25 blocks
instead of 50 blocks.  Dumps made with dump25 must be reloaded
with restor25.  The reduction in the tape buffer allows a longer
ilist (1200 blocks) to be dumped.  Binary to /bin, src was not
saved since all one has to do is change LBUFSZ from 12800 to
6400 in src/dump.c and restor.c.  Dump25 /dev/hp1 to tape
(after copying numerous things to /usr2 and /src so it would fit
in 65535 block tape address), mkfs /dev/hp1, 1200 blocks of
inodes (isize = 19,200), reload with restor25, copy all the
misc stuff back in from /src and /usr2.  A 65535 block dump
will still fit on one reel of tape with about 100' to spare.
The larger ilist (19200 vs 12800) gives us 6400 more inodes
which should be adequate (I hope) for the rest of the semester.
--ghg

Sun Feb 12 02:13:02 1978

made minor change to sig.c:  changed line 182?? so that it will create core
files mode 604 instead of mode 606 as it did before
HDS

Sun Feb 12 15:34:14 1978

New "who" processor.  Allows "-rNN" option where NN is the number of lines
to go back in the file.  If omitted NN is 192.  Src to /src/new, bin to
/bin (sticky bit), old binary to /u/bin/old.
--KT

Sun Feb 12 16:17:35 1978

Loaded help files into /usr2/news. Changed motd.c, help.c to use
new directory.  Src to /src/new. binaries to /bin/motd, /u/bin/help.
--ghg

Mon Feb 13 07:33:39 1978

Changed /etc/partial shell file to use "dump25" instead of dump.  Dump
blows up because of huge number of inodes on /dev/hp1.
--ghg

Mon Feb 13 18:21:15 1978

Changed /src/new/ps.c:  the -r stuff now uses alarm() and pause() instead
of sleep(), so it won't shuffle all of core around when someone does
a "ps -r1".  Also a note:  "ps -r0" is still not allowed due to the
4K (or so) proc table read/search every time.
-TGI

Mon Feb 13 21:05:00 1978

Minor change to "suid" -- if there are three arguments (third one can be
anything), the shell is brought up with "-" instead of "sh".  This way,
you can run a startup file if you want to.  With only two arguments,
"sh" is the argument as before.
--J. Bruner

Tue Feb 14 14:44:54 1978

"trino" program fixed so that large block addresses (over 32768) don't cause
problems (I hope).  Problem was that the decision to rewind was made using
normal integers (instead of unsigned ones).  New binary copied to /etc.  
Due to the upcoming change in the dd tapes (ncheck file as first record),
more changes will be needed to "trino", so the source is still in my
directory.

Also, "blitz" program (kill all jobs at a specified terminal using kill 0)
renamed to "killtty" as requested by ghg.

--J. Bruner

Tue Feb 14 16:13:30 1978

New dev/tty.c: Has fix to blitz bug TGI found, if one kept file open,
another stty would clear blitz bit (from being non SU).  Blitz bit
is now propagated across when new stty done.  Added "nulltty()"
subroutine which grabs an inode to "/dev/null", searches the system
file table for all entries pointing to the inode of the tty being
blitzed and stuffs pointers to /dev/null in them.  The count on the
tty being blitzed inode is set to one and the inode is dropped via
closei().  This leaves anyone with tty open (which didn't go away
in the blitz because they didn't do I/O) now looking at the null
dev.  Since the tty file is now closed, the Network can now properly
disconnect with background processes running.  The reassign to 
null dev is only done if th the i_count is > 1 on the tty file.
A 4-8 second delay (2 sleep's on &lbolt) is done if files must be
reasigned to null since the wakeups issued by flushtty()
must complete first.

Init was changed to open the tty, blitz it, close it, and reopen it.
Pseudo tty driver (pty.c) was changed to process the BLITZ bit
on open/close/read/write.  Files changed: dev/tty.c, pty.c,
/src/new/init.c.  Sysgen to new-unix.

The file "/dev/tty" presents a real problem as it cannot be cleaned
out by this method - not sure what to do about it yet.  Made
duplicate entries in /dev with mknod for  tty8 ttyw ttyk as
tty8. ttyw. ttyk., linked /dev/imlac to /dev/ttyw.  This allows
errlog and imlacdaemon to keep these files open across a blitz
since they are different inode numbers.  Changed /etc/rc and
/etc/run-errlog to reflect the tty changes.
--ghg

Tue Feb 14 17:56:54 1978

The reason HELP was getting sick on certain file names was because if he
sees a 'stop', 'quit', or an 'end'; he terminates.  This is dumb because
he does this on a ctrl/d which is what everyone uses anyhow.
Changed him so he won't treat these names specially anymore.
Source to /src/new/help.c, binary to /u/bin/help.
HDS

Tue Feb 14 19:54:33 1978

Moved pucc files to /src/pucc/*  Any changes made should use these
files.  /src/pucc/run file shows steps in installing new pucc.

Thu Feb 16 10:25:06 1978

This entry is for yesterday.
Ran out of incore inodes yesterday.  Changed ken/iget.c to issue a
printf "wait incore inode table space" and put proc to sleep at
PFNT (-3) until there are more inodes.  Changed param.h: NINODES
from 225 to 300, NPROC from 150 to 175, recompile ken and dev, sysgen
to new-unix.  At about 14:00 system crashed because tail end of last
buffer in the extended (out of kmem) pool crossed the 200000 physical
address (addr bit 16) boundry.  Since the Dectape controller drops
address bit 16, it read the end of the buffer into loc 0.  I ordered
the Dectapes be pulled off the Unibus and put onto the 11/45 until
they are fixed.  The paper tape punch/reader was also pulled since
it is also busted.  Moved /dev/tap? entries so tp couldn't get em.

Today's entry.
Changed dev/tty.c, uncommented "u.u_count = 0; /* fake successful write */",
which gets executed when a BLITZ is in progress so proc's don't
get I/O errors on blitzed I/O.  Put Hangup signal back into
dev/pty.c as bc's suggestion.  Sysgen two copies of new-unix:
1) new-unix25 with 25 NBUF2 buffers
2) new-unix150 with 150 NBUF2 buffers (linked to "," and "new-unix").

The new-unix25 will still run dectapes, but there is a good chance
things will deadlock due to small number of buffers, for one thing
it will run very slow.

Propagated new tty.c changes and pty.c changes to Potter.  Also
propagated C library support for alarm/pause and new /src/new/ps.c
--ghg

Thu Feb 16 14:58:37 1978

Set sticky bit on /bin/ls.  This is used so often it really should
have sticky bit set.
HDS

Thu Feb 16 23:07:05 1978

Found bug in du that if a directory was mode 0, not even SU could search
it and du was not reporting this fact; so the final disk-usage might be
completely erroneous.  du now reports the pathnames of any directories
that he cannot open. source to /src/new/du.s, binary to /bin/du
HDS

Fri Feb 17 00:14:39 1978

Brought over files:  /u/bin/lock /u/bin/unlock (ln'd) /src/new/lock.c,
help files on lock and unlock (ln'd), help file called "studentfiles" --
which will be printed with all new account creation reports.

Hope this is enough ammunition to shoot down the chmod 700 stuff...
--bc

Fri Feb 17 09:20:04 1978

Changed /src/s1/getty.c - added new table entry for 4800 baud Lear
Siegler.  Bin to /etc/getty.
--ghg

Fri Feb 17 10:29:22 1978

Put program called "jan-shell" into /u/bin .  This is inserted into 
/etc/6passwd into the startup field of the janitorial accounts so
that they may not run them from 9AM to 11PM on weekdays.
source to /src/new/jan-shell.c, binary to /u/bin/jan-shell.c
HDS

Fri Feb 17 16:00:07 1978

Put new routine in C library called "rgetchar".  This routine enables
users to get characters one at a time from the terminal without the
need to hit newlines.  Of course they could manipulate the raw mode
themselves, but this routine is intended to be a convenience to users
who do not understand "stty" calls etc...or who have a purely 
applications oriented need without having to go thru all of the mess
involved in doing this themselves.
HDS

Fri Feb 17 16:01:23 1978

changed du was removed due to its incompatibility with disk-usage
programs.
HDS

Fri Feb 17 18:35:32 1978

New version of "who" that if called as "who -t?", where ? is a tty character,
it will print the login line for that tty(just as "who am i") would from that
terminal.  If no one is logged on there, it will print nothing.
HDS

Fri Feb 17 18:04:00 1978

Moved boot program to /etc/boot for safety reasons as in accidents!!!
/bin/boot now contains a shell echo program to advise a root user of
this fact.
HDS

Fri Feb 17 19:16:45 1978

New shell to /bin/sh
Old to /bin/sh.old
New features:
	$W	is delay time for alarm() call which logs out
		the user when occurs.  0 or null to disable.
	Alarm clock	new message for Sig 14.
-TGI

Sat Feb 18 06:11:52 1978

1) /etc/boot copied back to /bin.  Spur of the moment system edits
have caused me many problems lately, mostly "political",
we have only 5 or 6 "system jocks" and about 700 other users and things
like chmod'ing the /usr/games to 700 with remind without advance notice
or permission has got people pissed off!!.  It is ok to move system files
around or do system edits in emergencies, but all of this "spur of the
moment" stuff will have to stop.  Please clear any of your own ideas,
whims, etc through me before editing the production system.

2) Copied /usr2/tgi/src/sh.c (which I think is current production shell)
to /src/new/sh.c. Made logoff timeout time into a #define TIMLOG and warning
time a #define TIMWRN.  Set the TIMLOG to 0 to set the default timeout to off.
This change hasn't been preannounced yet.  There are certain applications
which haven't been informed of the change (like microcomputer data 
acquistion, Tech typing, etc.)  Also sources for PRODUCTION binaries
(especially for things like shell, editor, login, etc) SHOULD BE IN
/src!!!!.
--ghg

Sat Feb 18 06:29:29 1978

Changed Full dump tape formates (DD copies only) for hp[1-3].  First
file on the tape is now a DD copy of the ncheck (inode 2) file from
the filesystem being dumped.  It is written with 50 block records
at 1600 bpi, although the last (partial) record will be short.  This
is to make file extraction easier since the ncheck file won't have
to be trino'ed off the end of the tape.
--ghg

Sat Feb 18 07:07:56 1978

Not enough space on /dev/hp1 (/usr) to make deadstart tapes anymore.
Changed shell file /usr/sys/conf/mk-boot-tape to get a copy of the
root from "/usr2/root" instead of /usr/root.
--ghg

Sat Feb 18 08:44:54 1978

Put in bc's rmall to /src/new. bin to /etc.  Updated doc in chap8.
--ghg

Sat Feb 18 11:36:36 1978

New versions of /etc/init, /etc/getty, /bin/runtty.  The major change is
to getty, which now accepts either one or two parameters.  As before, the
first one is an index into the mode table.  The second one (optional),
selects which program getty will run after configuring the terminal.
Currently, if this argument is a "0", or "1" (or only one argument is
passed), getty will bring up login as usual.  If it is a "2", getty will
directly bring up a shell.  The argument "2" causes getty to bring up 
/etc/down, which I haven't finished writing yet, but which will print a
system-down message.

"init" has been changed to pass the first of the 3 characters in the file
/etc/ttys to "getty" when it starts up a new process.  As before, a
0 as the first character indicates that the terminal is off, and a 1
will cause a login to be brought up.  Now, however, if the first character
is a 2, a shell will be brought up as the new process.  Eventually, this
can probably be used at Potter to bring up the library shell instead of
login at library terminals.

"runtty" now accepts one or two arguments (when executed by a keyboard
command).  The first argument is the terminal on which login/shell is to
be executed, and the second (optional), is passed to getty to determine
what program will be brought up.

Since runtty and init both are run by root, the shell brought up is owned
by root.  If getty is run by some other user, getty will bring up a shell,
but it cannot change uid so it will still be that user's id.

Sources now in /src/new for all three changed programs.  Probably some
minor bugs still exist.

--J. Bruner

Sat Feb 18 18:55:50 1978

changed passwd to mode 700 so users cannot run it.  Installed new program
called "password" which requires two arguments: the old password and the
new one in that order.  If the old one does not match the one in 6passwd,
a "permission denied" is printed without changing the password.  
"password" knows which one to change by doing a getuid.  If a user has a 
null password, he MUST specify an old password, but it may be null, as it
is ignored.  If he wants a null password, he may make the new one null
by having empty quotes.  
HDS

Sat Feb 18 18:59:29 1978

In addition to above, source of new password to /src/new/password.c,
binary(stripped) to /bin/password
HDS

Sat Feb 18 19:35:52 1978

Since only Super-user may run passwd now, i changed it so it won't do all of
it's checks to see if uids match etc....
source to /src/new/passwd.c, binary to /bin/passwd
HDS

Sat Feb 18 22:21:17 1978

Changes to /bin/ed, /usr/bin/xed, /bin/sh as follows.

/bin/ed		upgraded to last version of
		/usr/bin/xed (of 78/02/06)
		This adds "a/" command.

/usr/bin/xed	Added the following:
	t=C		set tab character to C
	t,NN,...	set tabs in columns
				NN, ...
	exp		expand tabs in lines
	a,b!COMMAND	pipe lines a thru b
				to process COMMAND
	pr		command was removed - replaced
				by the new form of !
	h		command now prints - in
				columns w/ tabs
	-tC		flag sets tab char to C
	-NN		sets tab in column NN

/bin/sh		Added timed read stuff:
	$W		is primary time delay
	$V		is secondary time delay
		After $W seconds, a warning
		message is issued.  After
		another $V seconds have
		passed, the shell exits.
		All this is under #ifdef's
		on ALARM

All sources to /src/new
-TGI

Sun Feb 19 08:41:22 1978

Recompiled /src/s2/passwd.c and copied to /bin/passwd, SUID ROOT.
The change forcing users to use "password" instead of "passwd"
has not been announced to users yet. /src/new/passwd.c copied
to /src/new/passwd.c.hds.
--ghg

Sun Feb 19 09:12:32 1978

Re-nroffed help files "ar", "cc", "ld", "nroff", in
chapter1 and "mktemp" in chapter3 from nroff files in
/src/troff/man/*.  Piped nroff output through "rmloc"
to take out underlining which makes help files useless
on a Lear Siegler terminal.
--ghg

Sun Feb 19 18:56:12 1978

Fixed up getty.c (Bruner's mods) to use struct's and sizeof's instead of
hard inline checks for table size, etc.  This makes adding/deleting
table entries much easier as one does not have to change a bunch of "code".
--HDS/ghg

Tue Feb 21 20:17:01 1978

Recompiled uid.c so it will use the u-seek file. It doesn't directly, but
since it calls getpw and the new getpw uses the u-seek file where the old
one didnt, this will make it faster as well as smaller.  I also copied the
source from bruner's directory(somewhere) to /src/new. 
HDS

Thu Feb 23 20:17:56 1978

Renamed help file for blitz command to killtty, as the program called
blitz was renamed to killtty some time ago.

Fri Feb 24 12:29:04 1978

I had forgotten about the help file on "killtty" (originally "blitz").
Changed the name in the documentation from "blitz" to "killtty"  (even
though the file was renamed, the contents still had the wrong name).
Nroff source to /src/unix-man.nroff/man8/killtty.  Also put nicetty
into nroff source directory.

--J. Bruner

Sat Feb 25 11:35:00 1978

New version of "on/off" program installed to keep up with changes in "init",
"getty", and "runtty".  Currently, it is linked to the following names in /bin:

	on 	on1	on2	on3	on4	on5	off

"off" works exactly as before.  Each of the "on1", "on2", etc. turns on
the specified terminals with the given character.  "on" works the same as
"on1" for individual terminal specifications.  However, the "all" parameter
is different for "on", "off", "on#":

	(1) off -- all terminals except tty8 are turned off, as before
	(2) on# -- all terminals appearing anywhere in the file /etc/onttys
		   are turned on with the character #
	(3) on  -- all terminals on the first line of /etc/onttys are turned
		   on with a "1", all terminals on the second line with a "2",
		   etc.

If a terminal is running one program and "on" or its variants is used to change
the base-level program to something else, the currently-executing program is
allowed to finish.   When it terminates the new program will be brought up.
Source to /src/new/on.c, documentation in chapter8 under on and off.  


New "trino" program in /etc -- allows extraction of files from dump tapes
which contain the "ncheck" file first, followed by the dump.  If the first
argument is "-", one file will be skipped before the extraction begins.
Documentation to chapter8 of the manual, binary to /etc, source to /src/new.
Some bugs still exist, primarily the fact that it should truncate the last
record but it doesn't.  I hope to have these fixed soon.


The "down" program for use with "getty" has finally been written.  It 
tries to open /etc/down-mesg, and prints its contents on the terminal.  If
it can't, it prints a one-line default message.  After printing the message
it sleeps for 30 seconds.  After the 30-second delay, inputting a newline,
interrupt, or quit, will cause it to exit.  This is intended to be used
when we are having problems to put a message on terminals -- in conjunction
with "getty" and "runtty".  Source to /src/new/down.c, binary to /etc,
documentation to chapter8 of the manual.  Recompiled "getty" so that it
refers to /etc/down instead of /bin/down.

--J. Bruner

Sat Feb 25 20:05:33 1978

Minor change to rm so he is a bit more understandable.  Instead of saying
xxxxx: mode 404 , he says xxxxx: are you sure? 
(At request of GHG so oozers won't get confused!)
HDS

Sun Feb 26 21:52:01 1978


Fixed "who" so if /u/adm/wtmp is too short, it seeks to the beginning
instead of going into an infinite loop.

--kt 02/26/78


Mon Feb 27 07:33:27 1978

Changed ken/alloc.c update() to not always writeout superblock for rootdev.
This is because icheck has in internal call to sync() after -s option
completes.  Superblock is now only written when s_fmod is set.  Changed
/src/new/boot.c to create a file "/down" before doing a sync() to force
s_fmod to be set and the superblock (and the time) to be written to disk.
Boot bin to /bin.  Changed /etc/rc to rm /down.
Also propagate to Potter.
--ghg

Mon Feb 27 14:01:07 1978

Fixed mkdir.s so that it will ignore interrupts and quits when running.  This 
should fix the problem of directories with missing . or .. entries.
binary(suid) to /bin/mkdir, source to /src/new/mkdir.s
HDS

Tue Feb 28 07:29:40 1978

Changed ken/fio.c access() to allow super-user to EXEC access to a file
even if no exec bits are on.  Formerly at least one exec bit had to be
on.  This change was also adopted by ver 7 Unix and lets super-user
access mode 0 directories, etc.
--ghg

Tue Feb 28 14:22:56 1978


put -f option on mv, to supress the question if the target is 
write-protected. Also changed the question to "make it easier(?)"
to understand, like rm.

--kt02/28/78


Tue Feb 28 19:26:47 1978

Completely shoveled editor source around.
All routines sorted alphabetically by name,
all globals sorted, etc...
Unused variables dropped.
#else's inserted to replace #endif/#ifndef pairs.
Mostly cosmetic overall.
Version number to 4.XX from 3.23
-TGI

Wed Mar  1 15:16:16 1978

Finally replaced the bad reset() and setexit() routines that the newsletters
have been complaining about for months.  Also inserted in libc.a were
showps() and the rand envsave() envrest().  Documentation to chapter3.
Source to /src/s5.

Wed Mar  1 15:25:53 1978

Recompiled delrem & remind without changes so they would be using the new
getpw instead the old one
HDS

Wed Mar  1 21:10:24 1978

Lots of minor changes to /usr/bin/xed, source to /src/new/xed.c
Added -y flag; simulates *y command, IE sets page upon INTERRUPT!
  mode.
Changed *: command to handle wrapped lines.
Allow "*" as well as ":" for those with heavy hands on shift key
  also "<" instead of ","
-TGI

Wed Mar  1 22:37:21 1978

Added -s flag to who so he will print his listing in alphabetical order
instead of by tty order.
HDS

Thu Mar  2 16:27:52 1978


changed uid to take any number of login names as well as id
numbers.
Old source to /src/s2, new source to /src/new.

--kt03/01/78


Fri Mar  3 13:59:31 1978

Changed sys/dev/bio.c getblk() to accept argument "NODEV2" (defined in param.h
as -2).  NODEV2 functions the same way as NODEV except the returned buffer
is not restricted to the NBUF1 (buffers in Kernel space) pool.  It will be
used by the new tty/dh driver for large amounts of output to high speed dev's.
--ghg

Sat Mar  4 12:48:50 1978

Changed stty.c to handle 38400 baud (on exta on our DH-11's).  Changed
getty.c, added a new table entry 'a' for 38400 baud Lear Siegler.  Src
to /src/new, getty bin to /etc, stty bin to /etc.  Also swapped entries
in /dev for tty0 and ttyq and swapped lines on DH-11's.  Swapped in
/src/new/ps.c also.  Bin to /bin. Set up ttyq (now on DH11-0, line 0)
to come up at 38.4 Kb.
--ghg

Sat Mar  4 13:59:35 1978

Changed /src/mdec/fsboot.s, "core = 28." instead of "24.".  Our /deadstart/unix
was so big, the symbol table got copied all over fsboot and crashed.  This
will give us 4kw more on load file.  Rebuild bootstrap, bin to /usr/mdec/hpuboot
and to /dev/hp5 (block 0).
--ghg

Tue Mar  7 13:19:20 1978

Installed new "remind".  This version uses uids instead of utmp names to get
the "from xxxx" field.  This way you no longer get from ?? junk regardless
of who actually sent the reminder.  The old version would use ?? if it couldn't
find the sender in utmp file.  You would still get uid name in postmark at top
of reminder though.  Still this is probably better this way, because it makes
remind more compatible with new delrem.
Binary to /u/bin/remind, source to /src/new/remind.c
New delrem also.  This version gets rid of the ability of a remindee who is the
only one on the receiver list to see the reminder with delrem and to be able to
remove it with delrem.  With new delrem, the only way delrem will show you a
message is if your uid matches the senders uid. (excpet for SU of course!)
Since many reminders currently running have from ?? due to being sent off when
owner not logged in, I am not putting new delrem in until these have gone away
as the senders would no longer be able to see or delete these messages with
delrem as the sender would be ?? and there is no such login name.  The new 
delrem will be installed as soon as all the "tickle" jobs currently in rmdfile
go away. source to /src/new/delrem.c  binary not yet installed.
HDS

Tue Mar  7 13:28:58 1978

Installed new "if" command i system.  This version has some new features that
were not available on old one (or didn't work right).  The extra features are
3 new flags:
	-x file		returns true if file is executable(searchable)
	-d file		returns true if file is a directory
	-c file		returns true if file is creatable
new documentation to /usr2/news
source to /src/new/if.c
binary to /bin/if
HDS

Tue Mar  7 14:07:36 1978

Installed new rmdir.  Has all kinds of checks to keep from removing root inode
of mounted FS, to insist that you have write permission in parent directory,
etc....
Source to /src/new/rmdir.c
Binary to /bin/rmdir
Old binary to /u/bin/old/rmdir
HDS

Tue Mar  7 14:10:28 1978

Also, new rmdir keeps you from removing current directory even with trickiness
that old one would let you do.
ex: current directory is source, rmdir . will not work, neither will
rmdir ../source because new rmdir checks major/minor device # and inode number
before attempting removal.  Old rmdir would let you do this.
HDS

Tue Mar  7 14:48:28 1978

New shell. Recompiled /src/new/sh.c with TIMLOG = 900 (15 mins) to
enable previously announced timeout logoff stuff.  Bin to /bin, old
shell to /bin/old/sh.
--ghg

Wed Mar  8 20:42:45 1978

New shell checks to see if a directory is OK before chdir to it.  This keeps
people from chdir'ing to a directory with no . or .. entries to screw up with.
Source to /src/new/sh.c
Binary to /bin/sh
HDS

Thu Mar  9 17:00:15 1978

Reversed last change to shell for compatibility reasons
HDS

Thu Mar  9 19:51:01 1978

New dev/pty.c -- blitzes tty instead of sending Hangup to it
when net dies or user disconnects with background proc's running.
Sent to Potter also.
--ghg

Fri Mar 10 11:30:38 1978

Rewrote update.s in C.  Allows use of optional parameter which is
number of seconds between issue of sync() calls.  Default is 30.
Source to /src/new/update.c, bin to /etc.  Changed /etc/rc to
run update every 90 seconds.

Installed new sleep() in C library.  Makes use of alarm/pause system
calls instead of old sys sleep which forced proc to rollin everytime
any sleep came due.  Old sleep renamed to ssleep().  Sources to
/src/s5/sleep.c and /src/s5/ssleep.s, binaries to /lib/libc.a and
/lib/old/libc.a.  User programs which use signals to abort out of
a sleep() and catch these signals should issue an "alarm(0)" call
before doing any terminal I/O or anything else which may cause
the kernel to put then to sleep at a positive priority.  This is
because the pended up alarm signal will go off and may abort
tty I/O but not disk I/O.

	The following sources were recompiled and edited in to
the system:
In /src:
	new/update.c new/rmall.c new/remind.c new/init.c
	new/init.c new/help.c s2/watch.c s2/wall.c s2/upload.c
	s2/sleep.c s1/imload.c s1/imlacdaemon.c s1/cron.c

--ghg

Sat Mar 11 12:23:32 1978

New login. Fixed so buffered output works.  Sent to Potter.
--ghg

Sat Mar 11 16:25:56 1978

Fixed up XED to write 512 byte buffers to terminal instead of
only 70.  Fixed stuff pertaining to tab expansion which was off
by one column.  Added -y flag.
In shell, added $B (default newbin dir), $D (default chdir dir),
Hds' mod to chdir to not allow changing to an empty dir, also
possible fix for the "Sig 119 -- Core dumped" message stuff.
(Not necessarily fixed, since cause still unknown.)
-TGI

Sun Mar 12 20:22:39 1978

re-compiled help.c because he was screwing up on non-existent file(when using
the menu format) and would get an "Alarm clock" shortly after he went back to
terminal input mode.  Binary to /u/bin/help
HDS

Mon Mar 13 12:47:43 1978

Fixed prof so output can be re-directed to a file (he was using putc which
wouldn't buffer the output so nothing ever got written)
Source to /src/new/prof.c
Binary to /u/bin/prof
HDS

Tue Mar 14 09:28:29 1978

Put new source for "cat" into /src/new (thought it was already there).  The
"nicetty" program had the problem that after it did the "clrtty" and opened
the terminal to be affected, it had the same controlling terminal as the
programs it was to change.  Thus, a "nicetty -127 x" causes the "nicetty"
program to get priority 127 and hang.  To fix this, "nicetty" now forks just
before it does the "clrtty".  Thus, even if it hangs, the parent has died
and so the waiting shell can come back.  Source to /src/new, binary to /u/bin.
				--J. Bruner

Tue Mar 14 13:02:50 1978

Put halts in after "bad block on dev" and "bad count on dev"
errors in ken/alloc.c.  If these errors are encountered on
hp1 or hp2 (dev 6/1 and 6/2). A crash dump should be taken
and the system rebooted/recovered.  If these errors
occur on other devices, one may CONTINUE the system at ones
disgression, ask the users to save files, boot ASAP, and
do recovery.  The filesystem in the error is most certainly
corrupted.

New kernel up.  Has version 7 swtch() code which uses linked
list of runnable proc's.  New routine "setrq()" to place proc
on runq.  swtch() takes proc (that was just switched to) off
of the runq.  Callers of swtch() wishing to stay in the RUN
state should call "qswtch()" instead.  qswtch() calls setrq()
and then swtch(). This should speed things up quite a bit
as there are usually only 4 or 5 runnable procs need to be
scanned in swtch() instead of 175 proc table entries.

Files changed: conf/m45.s changed _swtch to _qswtch
	        ken/slpp.c complete rewrite of swtch(), also
			changed some swtch() calls to qswtch().
		ken/text.c changed swtch() call to qswtch().
New error mesgs:
		printf: "proc on q" setrq called on proc on runq
			(warning only)

		panic: "running dead proc" - attempt to run Zombie.

**********************************************************************
New boot procedures:

The following boot procedure applies to EE and Potter 11/70's.

If switches are 0 when system is booted, it will not prompt with a "@"
and will use the default bootup file "unix".  In addition, init will come
up multiuser of SWR = 0.  Default boot file is assembled in 
/src/mdec/fsboot2.s.  If switches are non-zero, the unix boot will print
the usual "@" and prompt for a filename.  It is recommended that
the switches be set to 070 for systems testing or filesystem recovery
since init will now run one single-user shell with SWR=70.

To take system down, use "shutdown" instead of boot. System will stop
with all addr and data lights out. Shutdown is just a link to boot.
When system is brought down "gracefully" via boot or shutdown, a file
"/down" is created to indicate the fact.  Upon system startup, the
initialization shell file "/etc/rc" will not allow system to come up
multiuser of "/down" does not exist and a "call system staff" mesg is
printed.  If "/down" is not around, it means the system crashed and
there are probably filesystem problems.  /etc/rc removes /down if multi
user startup was successful.

**********************************************************************
New sources:
/src/new/init.c /src/new/boot.c /src/mdec/fsboot2.s

Binaries to:
/etc/init /bin/boot (linked to /bin/shutdown) /deadstart/hpuboot2 (also
to /usr/mdec/hpuboot2 and /dev/hp5 (disk block 0)).  After hpuboot is
stripped of symbol table, one must use dd to strip off the first 16.
bytes (unix header) or it won't fit in the boot block.


New DH-11/terminal driver. Uses large disk buffers for output if 9600
baud on up and certain other conditions are met.  Other conditions are:

1) no delays set (except TAB3 which sets SCOPE mode and is not a delay)
2) byte count on write is greater then DTHRESH (defined in tty.h) and 
   is even. DTHRESH is currently 70.
3) CRMOD and XTABS (-nl and -tabs for stty) are permitted.
4) XTABS, XTABS+RAW not allowed (without CRMOD) as these cases aren't used
   enough to justify putting them in the switch() in ttwrite()/tty.c.

The use of RAW mode (with both CRMOD and XTABS off) is especially efficient
since no intermidiate copy has to be done to expand tabs/newlines. Also
doing buffered output (fout > 2) is almost a necessity since the overhead
for doing the sys call itself for anything under 100 bytes causes any gains
in the tty driver to be lost. 512 byte/write is ideal.  Typical statistics
on system improvment are for a "lptest" running  at 19200 baud:
Old tty driver: 50% SYS+SYSI (kernel + kernel Interrupt cpu %)
New tty driver: 5%  SYS+SYSI (with XTABS+CRMOD)
New tty driver: 3%  SYS+SYSI (without XTABS and CRMOD, just RAW)

New tty associated sleep priorities:

-2 (PUMPRI)	waiting on PUMP output to finish
-1 (DPRI)	waiting on large disk buffer output to finish
10 (TTIPRI)	waiting on tty input
11 (TTIPRI+1)	waiting of "force" input to be processed.
20 (TTOPRI)	waiting on tty output (old driver).
21 (TTOPRI+1)   waiting on interlock to ttwrt() large buffer output.

Following files were changed:

dev/tty.c: new rountines ttwrt(), ptbuf() to handle setup of large disk buffers.
           Varrious other changes to implement large buffer I/O, stty, interrupts,
	   HOLD, (suspend output). Changed ttstart() to not call special startup
	   routine of t_addr == 0.  The psuedo tty driver plays around and uses
	   this as a flag and a ttstart() call used to crash the system.  The only
	   device to currently make use of large buffer output is the DH-11.

dev/dh.c   new routine dhstrt() to start up large buffer output and various
	   other "hooks" for the implementation.

--ghg

Wed Mar 15 09:22:42 1978

Got "panic out of text" yesterday. Changed param.h increased NTEXT from
40 to 60, installed ken/text.c, sysgen to new-unix.
--ghg

Sun Mar 19 01:13:18 1978

Fixed "ar" so he will print out uid correctly, instead of trying to print
2 byte uid as a uid and gid.
source to /src/new/ar.c
binary to /bin/ar
HDS

Sun Mar 19 14:05:08 1978


New hpuboot2 which has default filename at end.  New program "bootdf" to
examine/change default bootup file.  Src to /src/new/bootf.c, bin to /bin.
New hpuboot2 in /src/mdec (and bootf.s). Doc to chapter8.
--ghg

Sun Mar 19 15:03:52 1978

New DH11 driver -- checks for Data overrun errors and puts out deverror
to errlog and increments "_dhover".
--ghg

Mon Mar 20 16:03:01 1978

new /etc/rmall won't wipe you out if you do a "/etc/rmall .";  old one used
chdir(*argv);chdir(".."); to find out if arg was really a dir.  new rmall
uses stat instead.  source to /src/new

Tue Mar 21 16:23:47 1978

New rmeverything (rmall) in /etc and /src/new

Thu Mar 23 01:25:18 1978

new pucc and daemon; read /src/pucc/history   new bins to /etc/ccd
and /u/bin/pucc,  old copies stuffed in /u/bin/old

Thu Mar 23 10:49:01 1978

New directory in /src "tt" for technical typing sources.
--ghg

Fri Mar 24 13:54:58 1978

Put sources for accounting daemon /etc/ktd and its "#define" file into
/src/new (I thought they already were there).  Recompiled it so that it
will now use the new sleep routine for better efficiency, killed off
old one, started new one.

New version of APL installed in /usr/bin/new/apl, has changes requested
by Prof. Reeves -- "Lfloat" function and a "quiet" flag "% apl -e ..."
to prohibit echo of input commands when input is not a terminal.

--J. Bruner

Sun Mar 26 14:53:52 1978


Changed write so if your message permission is off, it's turned
on and turned off again when you exit.

Source to /src/new, owned by bin.

Also took off sticky bit, but left shared.

--K{t}

Mon Mar 27 13:41:45 1978

Copied "zr" from /u/bin to /bin so "zr /down" will work during bootup
HDS

Tue Mar 28 07:52:04 1978

New RP04/RS04 device drivers.  Dd deverr printfs at spl 0 to allow
interrupt processing to continue.  This means the system will still
stop normal processing, however keyboards will still echo, pump
and the network shouldn't get blown away.  Since our disks are
getting flakey, we are now getting several deverrors a day.
--ghg

Wed Mar 29 18:37:17 1978

Changed file create in dd from 666 to 644 for obvious reasons
Source to /src/new/dd.c, binary to /bin/dd
HDS

Wed Mar 29 23:01:08 1978

Put "cpu" command in to help connected oozers tell which machine they
are on.  Command just echoes  Potter, or EE, or whatever.
HDS

Thu Mar 30 00:17:26 1978

Changed mount so that he reserves a byte in the mount table (/etc/mtab) for a 
read-only flag.  If -r option is used he will set this flag, otherwise he will
clear it.  When listing mount table with mount, if read-only flag is set for an
entry, (read-only) will be appended to the line printed for that entry.
ex: hp3 on /src (read-only)
For change to mount, Source to /src/new/mount.c, binary to /bin/mount, old
binary to /bin/old/mount
HDS

Fri Mar 31 14:23:50 1978

Added "cpblk" program at request of ghg.  Program copies block(s) from source
file to target file.  Starting block number can be selected for both source
and destination files, as well as an optional block count.
Source to /src/new/cpblk.c
Binary to /bin/cpblk
Help file to chapter 8
HDS

Mon Apr  3 11:15:26 1978

New Kernel - handles Power failures.  Define "POWERFAIL" in param.h, conf/m45.s
and conf/low.s.  extensive changes to conf/m45.s, minor changes to conf/low.s,
ken/main.c, and most dev drivers.  Upon power failure, registers (CPU+FPP) and
other misc ones are saved at area allocated in m45.s. Upon power-up, system
hang in a reset loop for 10 seconds, resets memory managment registers and
calls all device driver open routines with an argument of NODEV (-1).  Each
device driver then waits for his device to ready or takes whatever action is
necessary to restart or abort that device. A "POWER FAIL." meessages is
printed in all DH11 tty's as part of their recovery.  Once device recovery is
completed, the system returns processing to the point of the power fail
interrupt after advancing the time by 40 seconds (guestimate).  If more
power failures occur during recovery, the registers are not saved and
recovery is redone when power comes up again using the registers saved from
the initial power failure.  The device recovery for tape drives is
basically to abort things since the drives loose position and vacuum
(or tension in case of DECtapes) although a DECtape recovery is theoretically
possible with operator intervention (or screwups).  The DA-11 link to
11/45 is reset and aborted. The DMC-11 network link to Potter 11/70 is
reinitialized which causes in progress transfers/logins to disconnect.  However
background jobs started previously will continue to  run.  Line printer
just resets interrupt enable along with DL/KL devices.  DH-11's lose current
DMA block on output (16 chars) and whatever is in silo.  The disks and
processes in memory should be completely intact.
--ghg

Mon Apr  3 22:55:01 1978



Made a 'name' program which finds the specified login names
in /etc/passwd and the accompanying uid in /etc/user-file,
and prints out the lines.
Source to /src/new.

--kt

Wed Apr  5 13:49:17 1978

New program -- "protocol" runs the shell and saves all input to and output
from it in a specified file.  Some problems -- CTL-D terminates the program
writing to the shell, which closes the pipe and thus gives an EOT to all
programs running under "protocol" (e.g. type a CTL-D to exit the editor
and the editor and "protocol"'s shell will both terminate.  No easy fix.
Also, programs which take special action when the standard output is not
a terminal cause problems.  Again, no easy fix.

Binary (sharable) to /usr/bin/protocol, source (C) to /src/new/protocol.c,
and documentation to chapter1.
--J. Bruner

Thu Apr  6 17:58:37 1978


Changed the rand editor to turn off bs1 (and mowle mode, which also 
messes it up) when entered, restore original modes when exit.

Also, the old re just turned off messages and turned them on again no
matter what mode was set. Now it sets messages to whatever mode it 
had been when it exits.
--kt

Fri Apr  7 16:02:32 1978

New nfi program:  Prints out text, type 1 buffer, and proc stats.  Also, some
bugs were fixed.  It now prints out the correct clist information and a major
bug in the swapmap routine was fixed.  read(fd, swapmap, 200) was changed to 
read(fd, swapmap, 400), since the buffer swapmap is int swapmap[200].  Why the
binary ever ran is a surprise.
Source to /src/new/nfi.c
Binary to /u/bin/nfi
Old binary to /u/bin/old/nfi
HDS

Sat Apr  8 12:10:23 1978

Moved all files from /usr/sys to /usr2/sys to free up space on hp1.
Left copies of ".h" files in /usr/sys for user's programs.
--ghg

Mon Apr 10 14:16:18 1978

New toy in /usr/bin -- "ded" (Directory Editor).  Found it in /src/uicc2/uicc
and patched the cursor addressing to run on ADM-3A terminals.  Has some nice
features and is impressive to run if anyone is watching.  Documentation in
chapter 1 of the manual, source to /src/new.
--J. Bruner

Tue Apr 11 08:29:38 1978

Minor change to "/usr/bin/compil", added code so that if "-o" flag is used,
next argument is merely passed on to "cc".  Formerly, saying:

compil -o binary main sub1 sub2

would give:

cc -o binary.c main.c sub1.c sub2.c

which would then make the C compiler mad.

Couldn't compile "compil" sharable -- causes memory faults (?).  New source in
/src/new.

--J. Bruner

Tue Apr 11 10:08:44 1978

New version of APL installed -- some minor changes.

Tue Apr 11 14:31:36 1978

Put sources for accounting summary program "total" into /src/new (also the
#include files "tstruct.h" and "dstruct.h").  Binary soon to be put into
/etc.  The program reads the "ktmp" file generated by /etc/ktd and produces
bar graphs of various resources (usage vs. time) for half-hour periods
daily, averaged over all time (thus, the output represents the average weekly
demands).  I have been using it from my directory since about December, 1977
and it seems to work ok.  Documentation soon to appear in chapter 8 of the
online manual.

--J. Bruner

Wed Apr 12 13:02:02 1978

Problem with "compil" solved -- it was doing "wait(0)" which made it want
to write status of dead process into word 0 (absolute).  This didn't hurt
its operation any, but did generate the memory faults.  Changed it to
"wait()" and it compiles and runs shared now.  New binary to /usr/bin,
source to /src/new.

--J. Bruner

Thu Apr 13 16:08:54 1978

Changes to XED through version 5.16:

- added "auto-save" feature - writes "file.tmp" every NN commands
- changed HANGUP - writes "file.hup" upon HANGUP
- changed -b flag - writes "file.bak"
- added -i flag - writes "file.int" upon INTERRUPT
- changed "!" command to allow piping lines to processes
- added "|" command - same as "!" command
- changed ":" command to display one screen, not fixed line count
- changed "k" command to list marked lines if no parameter
- added "e=C" command to define EOL character for multiple commands/line
- added "t=C" command to set a TAB character
- added "t,NN" command to set TAB STOPs
- added "f=C" command to set a tab FILL character
- changed "t" command to list TAB STOPs if no parameter
- added "qi" command to exit without writing file nor confirming
- added "ei" command to restart without confirming
- added "w>" command to append onto end of file
- added "co" command - same as "t" command
- added "mo" command - same as "m" command
- changed "c" and "d" commands to place deleted lines in save area
- added "x" command to recover lines saved by most recent "c" or "d"
- added "h" command to list column numbers
- changed "h" command to show columns with TAB STOPs with '-' instead of digit
- added "he" command to list help/syntax file
- added "y" command to do ":" command upon INTERRUPT
- added "y+" command to do ":" command upon INTERRUPT from specified line
- added "y-" command to return to normal INTERRUPT processing
- added "a/" command to allow tacking onto end of line without "s/$/text/"
- added "a " and "i " commands to allow easy insertion of one line
- added "u" command to allow use of edit command file from within editor
- changed "s" command to allow number after delimiter to specify occurrence
- added "j" command to join two sequential lines into one
- changed "c" command to same as "s" command if parameters
- changed "s" command to (if necessary) write file and exit if no parameters
- added "saNN" command to set SAVE count for '[file saved]' stuff
- added -d flag to NOT delete ".tmp" file upon exit
- added -h flag to process files >255 blocks also <512 blocks
- added -lC flag to predefine EOL character
- added -tC flag to predefine TAB character
- added -vC flag to predefine FILL character
- added -NN option to preset TAB STOPs (NN is decimal number)
- added -p flag to force prompting for pipes
- added -y flag to preset paging upon INTERRUPT (see "y" command)
- added -mNN flag to preset SAVE count for '[file saved]' stuff
- added -o flag to NOT seek input to eof on error for command files
- fixed bug with "k" command - now marks line 1 correctly

All this has been done since Jim Besemer left me with
Ned V2.1 last year.
binary to /usr/bin/xed
source to /src/new/xed.c
Also /bin/ed gets "smaller" version of XED.
- without the following:
	no TAB stuff
	no undelete
	no AGAIN command
	no special interrupt stuff
	no USE command
	no piping to processes with !
	no saving commands on file "edsav"
Same source as XED, #define-dependent.
-TGI

Thu Apr 13 18:05:19 1978

put in 'rev' for which there was a help file but no command.
source to /src/new/rev.c.
--kt

Sat Apr 15 09:00:24 1978

Source for "csw" now in /src/s1/csw.c.
--J. Bruner

Sat Apr 15 10:16:22 1978

New program -- "datesync" sets the time on the machine where it is executed
to the time on the other machine (e.g. if executed at EE, sets EE's time to
Potter's time).  Source to /src/new, binary to /usr/bin, documentation to
chapter 8.
--J. Bruner

Sat Apr 15 10:44:16 1978

Minor change to "pause" -- if the standard input is not a terminal, the
device /dev/tty will be used for input of the newline.  This was prompted by
the fact that the standard input in a shell file is not a terminal, so
pause statements there required redirection of input.  Source to /src/new,
binary to /usr/bin, slight change in documentation in chapter1.
--J. Bruner

Sat Apr 15 11:19:47 1978

New DA-11 driver - changed spl5's to spl6's for upcoming hardware
change of DA11 from br5 to br6.  Also changed vectors to spl6 in
low.s.  Sysgen to both 11/70 and 11/45.
--ghg

Sat Apr 15 13:52:58 1978

Made minor mod to pause so he will read an entire line (up to newline).  The
one byte read has the problem that if any characters other than newline are
typed, they will screw up any subsequent pauses by feeding them characters
from the first line typed.
--hds

Sun Apr 16 14:39:06 1978

Updated help file for clrtty to remove reference to SU restriction as this no
longer applies to clrtty
--hds

Mon Apr 17 01:15:20 1978

Made minor change to rm so that he prints out an error message if 
you don't give him a file, so that people don't think that they've
rm'd everything...
--kt

Mon Apr 17 09:43:38 1978

Fixed "datesync" so that if "csh datesync -d" hangs for 30 seconds, he will 
assume network is hung, kill the "csh datesync -d", print an error message,
and exit.
--hds

Mon Apr 17 16:18:06 1978

Put "datesync" in EE and Potter 11/70's /etc/rc files.  Gets
system date from other machine if up.
--ghg

Tue Apr 18 11:02:14 1978

"lre" (learn version of the Rand editor) installed in /usr/bin after some
slight changes (pathnames of help files, etc.).  Source to /src/new/lre.c.
Help files are located in /usr2/news/lre, and are quite complete, but have
been modified for our 23-line ADM-3A terminals.  Documentation for the
online manual will be a little time in coming, but hopefully a short
description of how to run "lre" can be writen soon.  "lre" pipes input to "re"
and interprets CTRL-U (when not in insert mode) as <HELP>.  Information about
any key can then be obtained by typing <HELP><KEY> -- e.g. to get information
about CTRL-P, type <CTRL-U><CTRL-P>.  "lre" actually is sending <USE> commands
to "re", so there is a limit on how many help files can be used in one session.

--J. Bruner

Tue Apr 18 12:39:51 1978

New tty program.  With no arguments, works as before.  If any arguments are
given, it scans each character in the first argument, printing the name of
the person logged on at that tty.  If no one is logged on there, it says so.
Source to /src/new/tty.c
Binary to /bin/tty
Old binary to /bin/old/tty
--hds

Thu Apr 20 18:05:25 1978

"mvdir" put into /usr/bin mode 755 -- for system staff to use (for now). 
When we are certain it is ok, we can make it root-owned, mode 4755 for
everyone to enjoy.  Preliminary documentation is in chapter 1 of the
on-line manual, preliminary source in /src/new.  Please let me know of
any bugs.

--J. Bruner

Sat Apr 22 11:16:36 1978

New "update" program -- optional second argument "-c" causes it to check
/dev/hp0, /dev/hp1, /dev/hp2, and /dev/hs0 for number of free blocks and
number of inodes.  If they become low, it prints an error message on its
standard output.  If they become "critically" low, it prints a second
error message.  It also prints a message when the "crisis" is over.  The
messages are printed only when the status changes -- thus, the same
message is not printed twice in a row.

Eventually, the output of "update" will be piped to /dev/errlog, from
where it will go to tty8, ttyk, ttyw, and /tmp/errlog as other errlog
messages do.  Thus, users can see the warnings in the terminal room on
ttyk when space gets tight.  For now, the standard output is piped to
/dev/tty8.

Source to /src/new, binary to /etc, modified /etc/rc slightly.
--J. Bruner

Mon Apr 24 08:54:51 1978

Some minor changes to "help" -- changed default erase character to <CTL-Z>
(it was <ESC> E for Superbee) and default page length to 23 lines (otherwise
one line scrolls off the screen on the ADM-3's).  The "run" routine did not
turn off interrupts in the parent when running a child process.  This was
nasty if the shell was run with "!sh" since hitting a interrupt made help
come back, but the shell did not go away.  Fixed that little bug also.
Put binary into /usr/bin/help (old binary was not sharable, so I did not
make the new binary sharable, perhaps it should be).  Source to /src/new.

--J. Bruner

(Hopefully we can coordinate our copy of help with ARPA's so these changes
do not disappear when the bring over their newest version.)


Mon Apr 24 12:46:52 1978

Documentation for new "update" now installed in chapter 8 of the online manual.
--J. Bruner

Wed Apr 26 12:56:31 1978

Slight change to "watch".  Since "watch" is often used to find out how much
output has been generated at any time, and it is nasty to have to sit and
wait for all of the output to be written to the terminal, if "watch" is
called with a second argument, it will seek to the end of the file before
first.  Thus, only "new" output will be printed on the terminal.  When
called with only one argument, "watch" will output all of that file, as
before.  Calling "watch" with no arguments causes it to read the standard
output, and it doesn't make much sense to seek to the end of a pipe (usually
the case when it is reading standard output).  Source to /src/new, binary
installed in /usr/bin.

--J. Bruner

Wed Apr 26 13:01:08 1978

New disktest program to /src/new, bin to /bin, doc to chap 8.
--ghg

Wed Apr 26 19:12:15 1978

Changed suid to change from any uid if the password is known.
For your own account, or one without a password, the password is
not asked for.  Superuser can still go to any uid, including ones
not assigned.
Source to /src/new, old source to /src/s2.
--kt

Wed Apr 26 20:00:51 1978

Changed hawker's user name to tsh.
Moved from /usr to /usr2.
-TGI

Thu Apr 27 10:36:31 1978

Set tty2 (EE 54) down to 1200 baud from 2400 due to
ignored keystrikes about 1 out of 7 times.
-TGI

Fri Apr 28 09:45:47 1978

Set tty3 down to 1200 baud also, as keys are being ignored when type on.
--hds

Fri Apr 28 13:40:57 1978

New grep installed.  -lnnn flag will tell grep too scan the file up to and
including line nnn.
Source to /src/new/grep.c
Binary to /u/bin/grep
Old binary to /u/bin/old/grep
--hds

Sun Apr 30 09:58:38 1978

New ken/subr.c bmap() which causes indirect blocks to be written with
"bwrite" instead of "bdwrite" the first time they are created.  This
should make crash recoveries less difficult where indirect blocks
are involved since this mod greatly reduces the chances of a "garbage"
indirect block (caused by block not being written at all) on a growing
file.  Also fixed minor bug where IUPD was not being set on conversion
to type large file.  Moved up "rablock" code since it was playing with
a buffer after it was returned via bwrite.

New dev/mem.c - errlog can now be written to from a user proc as well
as the kernel. Just copy chars to /dev/errlog.  As in the kernel, there
is no high water mark or associated sleeps, when errlog clist fills up,
the rest gets dumped on the floor.

Changed ken/sys1.c wait() - A wait on a stopped, traced process no longer
clears the tracing flags, it is just ignored as per ver 7 diff listing.
Avoids problem (in new ddt) where he has a kid stopped and wants to run
a shell via "!" command.  The wait() for the shell to finish would blow
the kid away.
--ghg

Sun Apr 30 10:00:25 1978

New DDT debugger from /src/uicc2/nps.  Cross between ODT and CDB.
Works for both C and assembly lang.  Src to /src/new/ddt?.c,
bin to /usr/bin/ddt, doc to chapter1.
--ghg

Sun Apr 30 16:28:17 1978

The Houston printer seems to open() just
find, but the close() (or exit()) stuff seems to
hang at PRI=7.  Moved /usr/epd to /usr/epd. (with a . )
-TGI

Sat May  6 09:39:57 1978

New ddt, ddt doc.  Allows debugged proc to have different std in/out
than one's current tty.
--ghg

Sun May  7 20:38:26 1978

Changed ken/sys1.c sbreak() to return error if locked in core.
--ghg

Wed May 17 11:02:10 1978

Fixed grep so he won't quit if he can't open a file given as an argument.
Previously, he would quit altogether.  Now, he just prints a "Can't open"
message and goes on to the next file.
--hds

Mon May 22 18:37:35 1978

Wrote this file, sh, xed, and adventure to tape for bc to take to 
UNIX User's Group meeting in New York.
--ghg

Sun Jun  4 20:19:53 1978

New ken/iget.c - Crash insurance due to lots of recent hardware
crashes.  Itrunc() rewritten to force out zeroed inode to disk
before returning its storage to the free list. Also changed
iupdat() to use bwrite instead of bdwrite depending on caller.
See below for more info:

 * If there are any disk blocks assigned to this inode,
 * then make a temp copy of it with blocks zeroed out,
 * write this temp copy to disk and then proceed to release
 * storage assigned to real inode.  This is crash insurance
 * which greatly reduces the problem of itrunc() putting
 * indirect blocks back onto the free list, having somebody
 * else snarf them and write them to disk before the copy of
 * the inode which is being truncated makes it to the disk.
 * This change and the one in bmap() handling indirect files
 * should (hopefully) reduce most crash recoveries to just
 * "dups in free" and dangling directory entries.
 *
 * Itrunc() gets called from iput(), creat(), and core()
 * and maybe a few others.  This crash insurance costs a
 * "hard" disk write (bwrite) in itrunc() and the inode must
 * still get written out again when iput() finishes him off.
 * Iupdat() uses hard write (bwrite) when i_mode is non zero
 * which is the case he was called from itrunc(), but uses
 * a delayed write (bdwrite) if the mode is 0 as it is when
 * iput() calles him.  If the system crashes before bdwrite,
 * you have allocated inode, but zero link count, and no
 * storage assigned, so much easier to track down during
 * recovery than a trashed up indirect block.  I really hate
 * to slow the system down with extra disk writes, but the
 * flakey hardware demands it.
 * --ghg 06/04/78.

Thu Jun  8 09:13:27 1978

Moved /usr/imlac to /usr2.  Updated pathnames in /src/s1/imload.c
--ghg

Thu Jun  8 18:11:46 1978

put "tell" call into C library, kernel code has been there for some time but
no one ever tried calling tell or ftell until today.  /src/s5/tell.s,
/lib/libc.a

Fri Jun  9 09:37:38 1978

New pack, unpack, pcat programs to /u/bin for file compression.
Doc to chapter1, src to /src/new.  Changed file.c to recognize
type "packed" file.
--ghg

Thu Jun 15 14:32:27 1978

Installed new routine in C library. itoa(x) convert a integer (16-bit) to
a character string.  See chapter 3 of help files.
Source to /src/new/itoa.c
Relocatable binary to /lib/libc.a (archived in)
--hds

Thu Jun 15 21:56:52 1978

Installed new /bin/mail (old to /bin/old)
Source to /src/new/mail.c
Changed .mail checking to allow sending to a
.mail file which has more than 1 link providing
the sendee is the owner.
-TGI

Fri Jun 16 20:37:39 1978

New login/motd to /bin. Keeps last login time in /etc/banner-log.
Src to /src/new. Updated /v/news/banner and zeroed /etc/banner-log.
Also keeps track of bad attempts on password.
--ghg

Sun Jun 18 17:59:33 1978

Bug fixes in motd.. new copy to /bin.  zeroed /etc/banner-log.
--ghg

Thu Jun 22 09:32:03 1978

New ps. HDS'S mods for showing User/sys time if "t" flag set.
Bin to /bin, old ps to /bin/old, src to /src/new.
--ghg

Tue Jun 27 11:57:41 1978

Recompiled opr.c after reversing uids for coates and simmons in program's
table of uids, as they were switched some time ago, so simmons would not be
able to print on mowle's printer if he wanted to.
Source back to /src/new/opr.c
Binary back to /bin/opr
--hds

Thu Jun 29 11:11:09 1978

System changes made during  the last week or so.

1) Have been having problems of  getting "orphaned" inodes,
   I.E. they have linkcount=1, but appear in no directory.
   Running several copies of "/etc/rmall" as super-user on
   a large multilevel directory on heave system load
   will usually dump a couple of inodes on the floor, but
   not cause any "cancerous" filesystem problems.
   Usually 1 or 2 a day show up.  I suspect they are being
   caused due to race conditions in iput/unlink or related
   areas. Code from PWB diff listing uses gobs of "plock's"
   before iputs and other places to lock up inodes and form
   a much more locking protocol.  However plock()/pipe.c is
   made for locking pipes and sleeps at pri=1 and can be
   interrupted out of.  It probably would not be very nice to
   be able to interrupt out of chdir(), iput(), as well as
   disk (non-pipe) I/O.  All calls to  plock() were changed
   to plock2() which is same as plock() but sleeps at PINOD+1
   (-89).  Only plock()'s are now for pipe I/O, plock2() for
   everything else.

2) Closef/closei area rewritten completely (per PWB listing)
   which should eliminate some close race condtions.  Closei()
   has been eliminated and incorporated into closef().  Bug
   in V6 C-Compiler forced use of "kludge" variable in closef()
   when comparing a register int *ip with annother item.  Other
   item gets asl'd before cmp even though ip not referenced as
   pointer.
   nulltty()/tty.c called closei() when blitzing a tty, but
   was modified to shove a fake file struct on local stack
   and call closef() instead.  Also noted bug in tty blitz
   code will leave inode "/dev" locked if "/dev/null" does
   not exist - should probably be fixed sometime.

3) Unlink() syscall rewritten per PWB diff listing, checks for
   cur dir and won't unlink busy text files and mounted
   file root dir's (which made a real mess!).  "busy" text files
   still may be "mv'd" since ok to unlink upto last link.
   There are still possible race conditions here.

4) minor changes to iupdat(), and umount() on calls to iput().

5) Installed 5th DH-11, running out of names for tty files.
   All names for new tty's are special chars to shell and
   must be escaped (like . * % [, etc).  Will be converting
   to 3 digit tty numbers in future (still stored as a byte
   internally), what a PAIN!  This puts us at 81 ports +
   psuedo's for network link.
   5Th DH-11 at csr=160120, vec=360.  DMC-11 csr moved up from
   160160 to 160200 and vec moved from 360 to 370 (required
   for Dec's diagnostics).  We are out of Kernel D space, had
   to shave off 2 inodes, and 2 file desc entries to get tty
   driver to fit with NDH11=5. There are 2 words left in D
   space!

After running for 3 days with all these changes, no inodes have
been orphaned yet.
--ghg

Fri Jun 30 09:26:38 1978

New ps to /bin, correction for new ttys on 5th dh11.
--ghg

Sun Jul  2 03:33:54 1978

brought over berkeley pascal
	/u/bin: 	pi px pix pxp pxref
	/u/lib:		how_pi how_pix pi_strings how_pxp pxref
	help:		pi px pix pxp pxref

moved old netherlands pascal to /u/bin/old/pi,pc.  /u/bin/pascal still
linked to /u/bin/old/pi.

also brought over their "ashell", which has some nice features: long variable
names, aliases, * expansion in chdir and in the middle of path strings,
user definable search sequence, internal time command, $* stands for all
arguments, etc.     help ashell gets document.

Mon Jul  3 12:39:04 1978

brought over new ned and ashell that handle 16 bit uids properly;  thought
i fixed ned to pull out uid in two parts from the stat buffer, but forgot
to change type of variable from char to int.  ashell was pulling in old
style getpw from libS.a;  deleted getpw from libS.a.

Mon Jul 10 10:58:46 1978

Added feature to allow one to set disfavored scheduling on execution.  If
the SGID bit is set on the file mode (we don't use groups), and the
global variable (in sys1.c) "_primetime" is nonzero, exec() will set the
LSCHD bit in p_flag ("research bit") and nice +10 on proc.  Used mostly
to control games.  Also changed chmod()/sys4.c to allow setting of SGID
bit by users.
--ghg

Tue Jul 18 09:01:38 1978

Running new kernel with proc table and clists out of kernel
address space.  We now have 4802 words of free kernel D-space.
Also added network buffer area of size 1 click (32 words).
The mapping of the clists, proc table, and network buffers
are handled much the same way as the "type 2" buffers, one
stuffs a magic number into "*ka5" before referencing them.
Interrupt level stuff has to save ka5 first.  One difference
between proc, clists, and net buffers, is that *ka5 is only
loaded to point to start of each area and any sub structure
of the main structure may be referenced without changing
the mapping as is done for the type 2 buffers.  The clists,
proc table, and net buffers are allocated in the "no mans land"
after the type 2 buffers which is after kernel bss, but before
kernel text.  From now on, this will be referred to as the 
"extended area".

Everything in the extended area will only be compiled in with
the definition of "XBUF" in param.h. (and m45.s)  Also defined
"NCP" in param.h to conditionally compile in the ARPA NCP
(Network control program) code for bc's network.  NCP requires
the definition of XBUF.

The sizes of various extended area structures are defined
at compile time in data.h and must be a multiple of 64 bytes
long and can be a max of 8192 bytes long (4kw) since 1 PAR
is used for the mapping.  Any 32 word boundry alignment
problems are taken care of with the defination of the large
type 2 buffers, since everything follows, there are no
alignment problems.

The following extended tables are currently defined:
(both size and address are in "clicks", 64 byte core increments)

table	size variable	address variable
----	-------------	----------------
buffers	bufsiz		bufaddr		Large "type 2" I/O buffers
cblock	clsiz		claddr		System Clists
proc	prsiz		praddr		process table
ntbuf	ntsiz		ntaddr		NCP net buffers

Everything except type 2 buffers is referenced by loading *ka5
with the corresponding address variable. I.E. "*ka5 = praddr"
has to be done before proc table references.  All of the "size"
variables must be initialized at compile time in data.h.  Where
things are referenced very infrequently, they can just be
"extern'd" in.  If it is fairly system-wide, they can also be
put in systm.h.
Also defined in m45.s are global variables "xstart" and "xend" which
are the starting and ending addresses (in clicks) of the extended
area.  The extended area is zeroed out in main().
The "address50" which contains the addr of the proc table for
crash dumps (for ps) is now a click addr.  Updated /src/new/ps.c
to reflect change.
--ghg

Tue Jul 18 09:14:56 1978

Changed /etc/rc and /etc/run-errlog to stick errorlog in /usr/adm
instead of /tmp.  Also stuck "deadstart" message in errorlog when
rc is run.  Installed "rout" from Berkeley which clears out anything
in /tmp that hasn't been touched for 3 hours.  Src to /src/new, bin
to /etc.  /etc/rc starts up shell file "/etc/clear-tmp" which invokes
rout every 1/2 hour.
--ghg

Tue Jul 18 16:47:14 1978

Put in H's new wall.  Allows staff to use without su, and anyone to use on tty8.
--ghg

Fri Jul 21 15:01:05 1978

New "colrm" program from Berkeley, deleted col's from a file,
src to /src/new, bin to /u/bin, doc to chap1.
--ghg

Wed Jul 26 21:06:30 1978

Changed ken/clock.c cpu scheduling.  Changed #define SCHMAG 10 to a 
variable.  schmag now varies between 10 (for 1 runable proc) to
1 for (20 runable proc's) in a more or less linear fashion.  SCHMAG is
the number of penalty points (p_cpu) removed each second the proc
doesn't run.  Before change, if there were over 5 or 6 runable proc's,
the penalties all "evaporated" to 0, and if all runable proc's were
all small and pure CPU bound, it was possible to lock up sys since
pri => PUSER.  Also proc's running at PUSER did not get pri recalculated
via a call to setpri(), only those > PUSER.
Since actual pri takes into account the size of the proc, the shell
can never get PUSER, but something like PUSER+3 as best, where as
small proc gets PUSER and shell never runs.
The classic case of "while(1) fork();" would kill things everytime
due to lockup, even though MAXPROC (20) proc's were created.
Also interactive response degraded when there were excessive (5 or 6)
crunchers running since the "p_cpu" scheduling penalties were no
longer in effect.  Interactive proc's typically have no p_cpu
penality.

Wed Aug  2 22:07:31 1978

to help reduce entropy I have eliminated the /src/new/* directory,
by consolidating it into /src/s1,s2,etc.  this has been done
periodically in the past, but this is the last time:  from now
on, all productional bin and lib modules will go directly to the 
appropriate s directory, with the old or backup versions labeled
with extension .old.  original v6 sources kept for reference have
extension .v6.

the "/src/new" scheme worked a long time ago when all the changes
to the original v6 system could be managed in a single directory,
but we have made too many changes to stick with that system.
some other reasons are: (1) s3-s5 mods have been made in this
way for some time  (2) which backup versions do you believe when
they exist in both /src/s? and /src/new ?
--bc

Fri Aug  4 04:33:44 1978

Put in new su src to /src/s2/su.c old src backed to su.c.old

This one inhibits interrupts, doesn't abort at the end of
the passwd file, and uses gtty to find out if it
is a terminal or not. Also, it prints out the uid along
with the name.

kt

Fri Aug  4 16:31:11 1978

The following were updated to versions that I have
been using/testing for over a month:

	/usr/bin/diff		/src/s1/diff1.c diff2.s
	/bin/db			/src/s1/db.c
	/usr/bin/fkey		/src/s1/fkey.c
	/bin/kill		/src/s1/kill.c
	/bin/nice		/src/s2/nice.c
	/bin/notty		/src/s2/notty.c
	/usr/bin/qcr		/src/s2/qcr.c
	/bin/sh			/src/s2/sh.c
	/usr/bin/tee		/src/s2/tee.c
	/usr/bin/xed		/src/s2/xed.c

The changes are as follows:
diff:
	Changes made on ARPA's machine many months
	ago to fix the memory fault problem on large
	file comparisons.
db:
	Added new command: "#" to set the block number
	offset for the seek() call.  Syntax is "NN#"
	where NN is octal (decimal if terminated by a "."
	as usual), which will cause all subsequent
	seek()'s to be to this block, then to the byte
	offset specified relative to this new position.
	The "=" command was modified to display the
	block offset (if any).
fkey:
	Minor.
kill:
	Checks the number decoding more closely to avoid
	such things as "kill x728" being executed as a
	"kill 0".
mail:
	Minor.
nice:
	Looks in user's bin directory also, like the shell.
notty:
	New program, does a clrtty() call, then exec's the
	command given.  Also looks in user's bin dir.
qcr:
	Minor, changed /usr/bin/ned to /bin/ed 'cause of
	ned being the Rand editor.
sh:
	Added signal 15 message: "System shutdown", and
	if sh gets a signal 15 himself, he'll print out
	"System shutdown requested by system manager.
	 Save files and log out."
	Useful for system shutdown, no doubt.  Also fixed
	minor bug in "set" command which would occasionally
	memory fault, causing user to be logged out if
	it was base-level shell.
tee:
	If tee cannot open any of his argument files,
	he'll bitch about it now.  Didn't used to.
xed:
	Minor.  Source hadn't been updated for quite a
	while.

That's about it for stuff.  Xfer won't be put in due to
BC's already working on NCP stuff, so xfer won't be needed.
-TGI

Mon Aug 14 11:19:45 1978

System changes during last week or so:

1) New code to tty driver to handle APL overstrike sequences
   in ttyoutput().  Code is conditionally compiled in with
   defination of "APL" in tty.h.  The apl overstrike table
   struct doesn't compile correctly with v6 C compiler, used
   v7 for tty.c.  Also made a temp entry in dev/tbl.c table
   device driver to make apl table appear as "device" so
   outside world can patch on the fly, as some of the overstrike
   sequences are currently unknown.  mknod /dev/apl, chown pdh.

2) Added new signal "SIGTIM", signal 16. When a process uses
   TIMELIMIT (in param.h) seconds (user+sys time), clock.c
   sends SIGTIM to it.  This is to prevent turkey users from
   leaving jobs in system looping for ever.  Commented out
   code which actually sends signal pending "political" decisions.
   ken/sig.c changed to cause core dumped on SIGTIM.  New
   program /src/s2/notl.c, works like nohup, just disables
   signal 16, and exec's in args.  "% notl program" will run
   program ignoring time limit.  Changed /src/s2/sh.c to add
   "Time limit -- core dumped" message if kid dies on sig 16.

3) Fixed time.s, nohup.c in /src/s2 to handle huge (20 blocks) 
   arg lists correctly.

4) Running with Unibus mapping turned on!, also handles power fails.
   Changed dev/bio.c mapalloc() to set up UMR'S 16 to 23 to be
   setup on mapalloc() call.  Moved code out of main() which sets
   up "known" UMR's into routine ken/main.c setum(). Setum() is
   also called from m45.s power fail code.  First 16 UMR's now
   map to physical (first 64KW).  This means anything in kernel
   buffer pool and extended region don't have to worry about
   UMR's at all (for Unibus I/O).  The extended region must
   lie below 64KW.  The last 7 UMR's are currently unused.
   Added routine "dpadd2()" in m45.s for mapalloc().  Same as
   dpadd(), but assumes high order word is located at addr+2
   with respect to low order word. (structure of a UMR).

5) Changed dectape driver (dev/tc.c) to allow raw I/O.  Added
   entries to conf/conf.c, mknod /dev/rtap[01].  Its main use
   was to check out Unibus map code, since this is currently
   the only Unibus device (in raw mode) which must use the mapping.
   In the near future, the Array processor, SI disks, and
   Versatec will all be needing raw Unibus I/O.
--ghg
***** Gave copy of system to Oklahoma Univ, Mike O'Dell.
--ghg

Sun Aug 20 09:48:48 1978

Changed system default erase/kill characters from # @ to control-H, 
control-X.  Changed sys/tty.h, dev/tty.c (maptab), /src/s2/stty.c,
/src/s1/getty.c.
--ghg

Mon Aug 21 13:12:39 1978

Took the nice(-20) out of typo.
--ghg

Tue Aug 22 20:47:20 1978

New version of APL put in /usr/bin/new/apl.  Older version with editor
named changed to "ed" placed into /usr/bin/apl.  The new version of APL
takes the flag "-m", which causes it to perform character mapping for
the modified LSI ADM-3 terminals.  Also, a slightly-modified editor,
/usr/bin/apled, also was added.  This editor should be upward compatible
with the regular "ed", but under a separate name we can find out for
sure without risking other things to it.  One problem I found in the
original code in /src/s1 at Potter was that the substitute command:

*s/junk/(&)/p

substitutes "(&)" for "junk" rather than changing it to "(junk)" as expected.
(Same source in /src/s1 at EE -- same problem.)  Until we can get this fixed,
probably had better leave "apled" as a separate program.  APL runs in I & D
space, apled is shared.

				--John Bruner

Sat Aug 26 16:59:13 1978

**** Gave copy of system to HDS (Incoterm) and U. of Oklahoma (Mike O'Dell)**
**** Both have valid UNIX licenses.


Kernel now compiles under Version 7 C compiler.  Mostly sticking in
extern's for tables containing address of functions (sysent, conf).

Fixed bug which I introduced with the change of using the sum of
sys + user times (instead of just user) to set LSCHD (disfavored
scheduling) bit.  If clock interrupts during fork() sys call, it may be
possible to get the LSCHD bit propagated from parent to child since the
"new" proc entry is pointing to the "old" user area for awhile and
the old user area has accumulated sufficient user+sys time to cause
LSCHD to get set on new proc entry.
/etc/init had LSCHD bit come on after 2 or 3 days of running, would
"randomly" propagate to various login's and shells.

Fix:
Clear LSCHD in fork() code after user and sys times are zeroed in
new user area.
--ghg

Wed Aug 30 10:58:02 1978

Modified tty.c to correct bad overstrike, ran 'install' .  pdh
C overstrike O became C overstrike J

Sun Sep  3 15:47:50 1978

Changed crypt to exit(0) if normal termination rather
than trash from stack.
--ghg

Thu Sep  7 10:05:57 1978

CHanged /src/tt/dd/diabloroman.c to put the "P" for presstype 18
columns farther to the right.  Edited to /u/bin.
--ghg

Fri Sep  8 22:06:50 1978

New "datesync" in /usr/bin, new source in /src/s1.  Format is now
"datesync <host>" where "host" is a mnemonic such as "a", "p", etc.,
designating what machine will be used to get the date.
			--J. Bruner

Sat Sep  9 02:17:08 1978

New multiple host network software ("mx" device) was installed at EE and
Potter Thursday night.  New kernel code in /v/sys/dev/mx*;  new user-level
code in /src/mx/*.

Sat Sep  9 02:19:51 1978

Fixed socket deallocation problem in mx.c.  New s_csh avoids calling 
"sh -c" if possible, to speed things up.  Csh now sends hangup instead
of kill when local interrupt received.

Sun Sep 10 17:38:38 1978

new /u/bin/pucc.  if file descriptors 0,1 and 2 were closed on exec, funny
things happened.

Sun Sep 10 19:48:49 1978

added signal(1,0) call to s_csh (for some reason hangups were ignored
when the very first s_csh was started from /etc/rc).

csh himself now enables for hangup as well as interrupt and quit, and
forwards a hangup signal.

Sun Sep 10 22:15:42 1978

new mx.c at EE and Potter;  sysgen'd to new-unix.  disconnect and close now
flush any delayed write buffers before close function block sent.
% csh a echo hi		didn't used to work

Thu Sep 21 16:40:24 1978

Updated tty names in /src/s2/ps.c... Due to tty lines moving to different
mapping, etc.
--ghg

Sat Sep 23 12:02:29 1978

New su and wall to /src/s2.. Ron Reeves' mods to cover up password
printout on tty8 when staff does bad attempt.  Gets list of uid's
from /u/include/staff.h, wall uses same list.

"% su e" causes a nice(-127) to be done immediately in case of emergency.

New kernel mods, put spy stuff in nami, cleared out all group bits on
all filesystems, chown(), stat() won't let non su touch or change
or read group bits.  /dev/statlog in, (mem.c), like errlog, but fed
by sprintf(), sputchar(), and writing to dev, used for chit-chat.
--ghg

Wed Sep 27 15:24:04 1978

Newer version of APL in /usr/bin/new/apl and corresponding updates to
/usr/bin/apled.  Some bad character mappings were fixed, and apled was
fixed to handle commands such as "s/old/&er/p" properly.
					--John Bruner

Tue Oct 10 11:03:16 1978

New versions of APL and APL2 with addition I-beams defined:

	40 -- total system+user time of all (completed) children of APL 
	41 -- total user time of APL plus all (completed) children
	42 -- total system time of APL plus all (completed) children
	43 -- user time of APL
	44 -- system time of APL

I-beam 21 was already defined to be total sys+user time of APL.  Times
are returned in 60th's of a second.  Additional change -- the "encode"
function now operates as defined for 1-element vectors/arrays.  Buffering
not yet fully dubugged, but hopefully will be ready in the near future.

				--John Bruner

Wed Oct 11 14:18:49 1978

In order to free up several hundred blocks of space on /usr, I have deleted
the tutorial program.  The file /usr/bin/tutor gives instructions for running
the tutorial at Potter via the network.  The last use of tutor was on Sep. 11.
When (if) the SI's work, we can put the files back.
				--John Bruner

Wed Oct 11 15:18:23 1978

Put documentation for "empty" system call (from Rand) into chapter2.
--J. Bruner

Wed Oct 11 17:24:57 1978

Added multiple terminal types for the 'l' program.
added switch -t? to define current terminal type
	-ta selects adm3a
	-tt selects tektronix 4014
modified exits so l always returns with exit status 0
source in /src/s1/l.c   binary in /usr/bin/l
old source in /src/s1/l.c.old
		--R Reeves

Thu Oct 12 10:42:46 1978

Put in more pseudo tty's. Running tech typing at Potter.
Also fix ps to handle more pty's.  Changed dev/pty.c NPTY
from 8 to 16.
--ghg

Thu Oct 12 14:36:37 1978

Added file "aplmap.h" to /usr/include.  This file is used by XED and APL
to perform character mapping on APL terminals.  It contains two tables,
which can be used for direct table look-up of characters from octal 041 to
0177.
				--John Bruner

Thu Oct 12 17:03:55 1978

Added new Apl character mapping stuff into XED for
new/apl.  Linked /u/bin/apled to /u/bin/xed, old
apled bin to /u/bin/old/apled.
Source of XED to /src/s2/xed.c
Since there is no "source" for ED, /src/s1/ed.c is
a command file to strip out the XED stuff from /src/s2/xed.c
and generate an ED binary from it.
Also added "m" command to toggle "magic" characters
on and off.  -r presets the "magic" off.  Normally on.
-A flag is for Apl char mapping, turns on -a
-a is regular Apl mode, turns on -r, so Apl normally
disables "magic" characters:   $ & \( \) [ . * ^ 
-TGI

Sun Oct 15 09:30:16 1978

Changed /src/s1/catalog.c buffer size from 24000 to 26000, edit to /u/bin.
--ghg

Mon Oct 16 11:22:03 1978

Resorted /usr/bin directory.  Moved commonly used files to front, deleted
ingres, now is type small dir again.
--ghg

Mon Oct 16 14:39:02 1978

Edit Crawfford's FFT subroutine (F4P) to /lib/f4p/suplib.obj, source 
to /src/f4p/fft.f4p.
--ghg

Wed Oct 18 09:18:06 1978

Changed ken/clock.c - made patchable variable "_sclschd" which is the
number of "ticks" (seconds*60) which to set the LSCHD ("research bit")
on the process.  Default to 45*60.
--ghg

Thu Oct 19 21:52:09 1978

Created "cpu" C programs for EE & Potter.
Much faster and still only 1 block.
Doesn't require entire shell to be loaded/preset
just for the one liner message.
-TGI

Sat Oct 21 14:02:28 1978

Fix bug in si9400.c disk driver. To correctly abort chain ahead on cooked
I/O error.  Was hanging in loop at spl5.
--ghg

Sat Oct 21 21:52:24 1978

Cleaned up blitz and spy code in tty.c, dh.c.  Fixed bug in sprintf()/prf.c
and sputchar(), was not restoring status of "errlg". caused printf's to
get dumped to statlog when should have gone to console.
--ghg

Mon Oct 23 14:32:49 1978

Buffered versions of APL now installed in /usr/bin/new (both apl and apl2).
Testing up to this point looks good, but probably there are some remaining
undiscovered bugs.  Prof. Reeves will announce the newest version of APL
in today's EE 466 class -- hopefully most students will use it instead of
regular apl because of its better response.  Buffered I/O seems to run up
to 7 times faster (sys+user) than unbuffered I/O for such things as loading
workspaces and listing functions on the terminal.

				--John Bruner

Mon Oct 23 16:39:09 1978

new con and associated software to support virtual terminal protocol
and gtty/stty propagation.  affected files:

/u/bin/con		new con (/etc/s_con unchanged)
dev/pty.c		pseudotty driver to interpret vt protocol
dev/tty.c		minor mod for "empty()" sys call
ken/pipe.c		 ..
conf/conf.c		ptcontroller stty now nodev
/etc/getty		new "%" table doesnt do stty
/etc/ttys		ptys now speed "%"

new sources for above in /src/mx/*, /v/sys/*, /src/s1/getty.c

Mon Oct 23 17:14:38 1978

New buffered version of cata and catb installed.
Binary is /u/bin/cata and is linked to /u/bin/catb
source is /src/s1/cata.c
cata.c determines how it was called and sets output mode
based on the ? in cat?
catb can probably be removed in January as cata -b
is the same as catb.
			R.Reeves(r)

Mon Oct 23 20:51:32 1978

Fixed nice, nohup, notl, and notty to follow shell binary hunting
sequence (current dir, user bin dir, /bin, /usr/bin), and to get
rid of "arg cnt" messages.  New sources to /src/s2/*.c
Binaries to /bin/nice, /usr/bin/nohup, /usr/bin/notl, /usr/bin/notty.
-TGI

Tue Oct 24 00:54:35 1978

Changed XED and ED default auto-save line count
from 10 to 35.  Didn't recompile ED, just changed
_modcoun with debugger.  Tested it, and it works.
-TGI

Tue Oct 24 07:56:24 1978

Running one System Industries disk in production now.  New handler dev/si9400.c,
dev files are /dev/si* and /dev/rsi*.  Looks like 3 RP04's.  Copied
large users to /a on /dev/si1 (65500 block fs).  Changed dump and icheck
procedures in /etc to inlcude new disk.
--ghg

Tue Oct 24 09:21:23 1978

Fixed bug in rchown, wasn't closing directories when finsihed, blew up when
ran out of file desc.
--ghg

Tue Oct 24 13:45:50 1978

Minor revision to "slog" -- interrupts and quits are ignored in the parent
so that typing an interrupt doesn't bring back the shell and leave the
editor hanging.  Also, "abort" command in editor causes "slog" to exit
without appending the temp file to the syslog file -- similar to its use
in "mail".  Source to /src/s2, binary to /usr/bin.

					--John Bruner

Tue Oct 24 15:30:53 1978

Cleaned up /usr2/news/manual/chapter1.
Chown bin on all root-owned files.
Updated a few files to reflect added options
 to various processors.
Zapped and relinked out-of-date and duplicate
 entries, and corrected misc spelling errors.
-TGI

Tue Oct 24 15:33:55 1978

New /bin/sh going in tonight.
Old binary to /bin/old/sh
New source to /src/s2/sh.c
Old source to /src/s2/sh.c.old
New features:
	Signal 16: "Time limit"  message
	-X=string flag on shell call
	  sets parameter $X to have "string"
	  as its initial value.
	  May be used to preset $M (prompt)
	  or disable $W (terminal timeout).
-TGI

Thu Oct 26 17:05:42 1978

78/10/26	f4p system patches

Temp file pathnames:

	ADDR	OLD		NEW
f4p1:	0121730	fwrk****.tmp	/t/f****.wrk
	0121746	fcod****.tmp	/t/f****.cod
	0121764	ftmp****.tmp	/t/f****.tmp
f4p2:   0113470 fwrk****.tmp    /t/f****.wrk
	0113506 fcod****.tmp    /t/f****.cod
	0113524 ftmp****.tmp    /t/f****.tmp
	066221	None of the errors detected
		No compile  errors detected
f4p3:   0121522 fwrk****.tmp    /t/f****.wrk
	0121540 fcod****.tmp    /t/f****.cod
	0121556 ftmp****.tmp    /t/f****.tmp
	067011	None of the errors detected
		No compile  errors detected


For info only:

	ADDR	String
f4p:	014366	/usr/lib/f4p/f4p1
	014430	fpre00000.tmp
f4p1:	066764	/usr/lib/f4p/f4p2
f4p2:	066066	/usr/lib/f4p/f4p3
f4p3:	066726	/usr/lib/f4p/f4p1

-TGI

Fri Oct 27 16:14:38 1978

/usr/sudduth moved to /usr2
/usr/webeck moved to /usr2
-TGI

Fri Oct 27 16:59:12 1978

New version of "pucc" spooler:
Added "-rkey RKEY" to -get
Added "-rkey RKEY" and "-wkey WKEY" to -put
Added "-checkq" and "-cq" to run CHECKQ
New binary to /usr/bin/pucc
Old binary to /usr/bin/old/pucc
New source to /src/pucc/pucc.c
Old source to /src/pucc/pucc.c.old
-TGI

Fri Oct 27 17:45:27 1978

Changed ned to get key definition file from 
/usr/lib/ned.key.adm   rather than from   /src/re/key.adm
Source is at potter, /src/ned/adm/ned.x.c
New binary to /u/bin/ned
Old binary copied to /u/bin/old/ned
/u/bin/new/ned removed. All it did was try nicer(-5)
but it was no longer suid root anyway.
	R.Reeves(r)

Sat Oct 28 14:47:18 1978

Put in software and hardware checks on kernel stack.  ENabled hardware
stack limit check and check sp in trap code also.  New fatal error
"Panic - Stack violation" which really isn't a panic, just a halt.
Suspect recent glitches may have been caused by stack clobbering part
of user area.. some devices turn interrupts back on during interrupt
processing, eating up stack space.  Also tty driver has a 256 word
buffer out there too.
--ghg

Mon Oct 30 00:59:20 1978

mx files are now named /dev/mx/A  /dev/mx/B  and so on.  directory /dev/mx
was placed at the top of /dev.  New network library in /lib/libmx.a.
con, csh, s_con, and s_csh recompiled with the new -lmx library.
csh now reports dead host truncation.  s_csh execs the shell as a last
resort.  source in /src/mx.

Tue Oct 31 12:49:12 1978

Raised MAXBLK2 (in param.h) from 2048 to 10000.  This is max file size
in blocks for uid's 1 to 9.
--ghg

Wed Nov  1 08:49:30 1978

Added new routine "icheck" to ken/iget.c.  Icheck() does bounds check on inode
number from incore superblock and halts system with "Bad inode  on dev x/y",
and inode number.  Icheck() is called from iget(), iput(), and wdir().
There have been a rash of bum directory entries (3 or 4 a week) lately,
suspected cause may be flakey hardware generating interrupts causeing stack
to clobber part of user area. Since code was installed last Sun, there
have been no errors (or Stack violations) detected or bad dir entries
written either.
--ghg

Thu Nov  2 19:56:27 1978

/etc/mxreset will reset all the network code in the local machine if
the dmc gets hung for example.  only su can issue this mx stty.

Tue Nov  7 09:14:44 1978

Changed sys1/exec() to give SGID on exec files a nice of +126 instead
of +10 (games).  Changed slp/setpri() to cut the penalty in half for
proc size.
--ghg

Thu Nov  9 13:05:14 1978

CHanged tech typing software.  Melanie keeps letting tty number
default to "h", which is not a diablo anymore.  Changed default
to ttyx.  Following files were changed:
/src/tt/dd/finalgreek.c
/src/tt/dd/finalroman.c
/src/tt/nroff/proof.c
/src/tt/neqn/eqnproof.c

Propagated to andy's bin direcory at Potter.
Also to EE /usr/bin.
--ghg

Sun Nov 12 13:46:41 1978

Installed new motd and login.  "motd +" now runs motd which prints /etc/motd
and updates last login, "motd -" bumps bad password count, and "motd" just
prints /etc/motd with to time update.
--C. Schleifer/ghg

New printer daemons in /etc.  lpd, epd, and 67d.  Move banner page
to bottom of wasted page (will save about $2,000 in paper a year est.)
and fixed bug causing random page ejects on 2nd and succeeding outputs
on page 1.
--ghg

Tue Nov 14 00:50:18 1978

Added new flag to mail:
mail + user
will call XED instead of ED.
-TGI

Tue Nov 14 08:48:46 1978

Changed remind to clear controlling  tty (clrtty()) and nice(0) upon entry.
It seemed processes started from remind inherited whatever controlling
tty remind was started from last and interrupt/quits were NOT ignored.
User on that controlling tty would bomb out remind created proc's when
he hit an interrupt.  This explained why file zap/disk accounting
has mysteriously vanished 5 or 6 times in last year.  Propagate to
Potter.
--ghg

Tue Nov 14 13:41:26 1978

Slight modification to "l", added parameter "-tw" to specify Ann Arbor
terminal with CTL-L screen erase and 38-line depth.  I figured "w" was
probably about the easiest thing to remember except perhaps "a" (for
Ann Arbor), but that letter already is reserved for the ADM-3A's.  Source
to /src/s1, binary to /usr/bin.
--John Bruner

Wed Nov 15 15:36:31 1978

Changed sys4/nice() sys call to not allow non su to better his priority.
Former case nice() only allowed non su to set positive pri.
--ghg

Fri Nov 17 06:56:37 1978

New shell to /bin/sh.
Additions are new search priority for binaries for super-user.
 also "pwd" is interpreted directly.
To run pwd program just type "pwd/"
-TGI

Fri Nov 17 14:12:15 1978

Put bc's scopedh program (generates continous output) for hardware testing
into /src/s2. Also check for write error and  exit(1).
Binary to /etc/scopedh.
--ghg

Mon Nov 20 07:54:27 1978

CHanged dectape handler to put CONTROL-A's in printf's.  CHanged errorlog
procedure to egrep out garbage going to /dev/ttyk.
Now ttyk gets dectape errors and LOW SPACE messages.
During bootup, old contents of /u/adm/errlog are appended to /u/adm/errlog.old
and /u/adm/errlog is cleared.
--ghg

Sun Nov 26 10:03:41 1978

Fixed old bug in slp.c/sched().  Would swap out trashed proc if the
following were true:

1) System full of jobs, most of them runable
2) At least one proc with LSCHD "research" bit on which wanted in.
3) The proc for 2) hadn't been out for 120 seconds yet
4) Everybody in core which could have been rolled out to make room
   for proc 2), couldn't be moved, because had SLOCK set from raw
   I/O or other similar things.
5) If all above true, a wrong procp was swapped out, usually the last
   one swapped out, the swap image was usually garbage and system
   would crash from trashed u area when bad proc was swapped in again.
   /etc/init even turned into a "login" 3 or 4 times!

This bug never affected the 11/70's, had plenty of core, little raw I/O,
etc.  It showed up when running 11/45's in "diagnostic" mode (all disks
running flat-out Raw I/O to load up bus, almost everybody SLOCK'd in, etc)
If pri was better then -5, sched() ignores the "current proc in for 2 sec,
swapped proc out for at least 3 sec" rule and a much more "violent" core
shuffle occures when a job with a large negative nice is run.  This bug was
caused by one of ghg's sched() mods a couple  of years ago, and is not a
fault of "plain vanilla" Bell UNIX v6.
--ghg

Thu Nov 30 15:10:22 1978

New APL/APL2 installed as new/apl, new/apl2.  Previous new/apl goes to apl,
apl goes to oldapl.  oldapl, oldapl2 were unbuffered versions with games
bit on an research bit, but noone was using them so they now are the oldest
copies of buffered APL.  new/apl has minor changes -- a bug with rho was
fixed, and Lfx now can be used from inside APL functions instead of only in
immediate mode.
				--John Bruner

Sat Dec  2 14:55:51 1978

Unbuffered versions of APL installed in /usr/bin/uapl and /usr/bin/uapl.
These are the same as the versions currently in /usr/bin/new except that
they don't buffer I/O and thus are a real load on the system.  However,
pipes don't work correctly with buffered APL and Prof. Reeves requested
special unbuffered versions.  Hopefully use of these versions will be
very limited.  Binaries are execute-only so we can prevent the spread of
unbuffered copies if (for some unknown reason) other people want to use
the slower versions.
				--John Bruner

Sat Dec  2 19:35:50 1978

installed new version of uid, allows octal numbers as arguments.
octal numbers must be preceded by leading 0.
		ron reeves

Sun Dec  3 15:47:49 1978

Kicked up proc's and inodes by 50 in /v/sys/param.h, recompile everything.
--ghg

Sun Dec  3 19:50:54 1978

new version of wall installed...releases terminal immediately
upon control-D  before forking and sending off all the wall's.
source to /src/s2/wall.c
bin to /bin/wall
uses the new getpw (use passwd if u-seek not there)
		ron reeves

Thu Dec  7 16:27:02 1978

moved in pwb tmac's to /usr/lib on hosts a and p.  potter is making 50 copies
of the -mm document and will be available at EE shortly.
--bc

Mon Dec 11 18:47:56 1978

Changed dev/si9400.c added sidump() routine to dump selected areas of
6800 memory in SI 9400 disk controller on SI deverror.  Also stuck kludge
in m45.s idle() to call sidump() if console switches == 1, so can get
a controller dump after a panic.

Made distribution copy of /usr2/sys for Bell.
--ghg

Fri Dec 22 11:51:19 1978

sendall and wall modified to release terminal before 'walling'
Both fork if possible to release the terminal..
When the routine gets to a state where it can't fork anymore,
it sets up a 2 second alarm and does a wait to collect dead kids.
Then tries the fork again.
source to	/src/s2/wall.c		/src/s2/sendall.c
old source to	/src/s2/wall.c.old	/src/s2/sendall.c.old
binary to	/bin/wall		/etc/sendall
		(linked to /etc/wall)
old binary to	/bin/old/wall		/etc/sendall.old

		ron reeves

Fri Dec 22 12:08:07 1978

Fixed bug in passwd and password where user could specify a
new password having more than 8 characters.  Login only
looks at the first 8 characters and this messed up the
encryption.  Now passwd and password only look at the first
8 characters of the new password.
Also made passwd call showps to clear out the password in ps
listings.. password already had this feature.
source to 	/src/s2/password.c	/src/s2/passwd.c
old source 	/src/s2/password.c.old	/src/s2/passwd.c.old
bin to		/bin/password		/bin/passwd
old bin to	/bin/old/password	/bin/old/passwd

		ron reeves 


Fri Dec 22 12:12:33 1978

Nohome is a program that goes through the password file
and lists those users which do not have a home directory and
optionally lists those who have not modified their directory
in the past 6 months.  Standard output is a list of user names
suitable for entry to rm-users.  A log file, nohome.log, is created
to list the user name, directory and why it should be removed.
source to /src/s2/nohome.c and to /v/sys-usage/nohome.c
binary to /v/sys-usage/nohome
nohome [-m]		where -m means test modify times

		ron reeves


Sat Dec 23 01:13:34 1978

Updated Potter /bin/mail and /src/s2/mail.c
EE version sent over.  Only difference is:
% mail + name
calls XED instead of
% mail - name
which calls ED.
-TGI

Sat Dec 23 11:01:44 1978

New Pty driver installed.  Cleans up BLITZ problems, and
race conditions in general (which used to cause occaisional hung
pty's).  Network servers now pick up controlling tty when they
open controlling side of pty driver.  This avoids all the clutter
on tty*.  Put a nohup in front of s_con line in /etc/rc.
--ghg

Wed Dec 27 14:37:33 1978

Took copy of kernel over to Tony's 11/45, it was badly out of date,
finished converting him to 16 bit uid's. Swiped some changes from
their old system before it was put to death.

1) ken/prf.c prdev() has table of devnames (in conf.c) so dev errors
   come  out like "err on dev hp1" instead of "dev 6/1".  This screws
   up when minor dev has extra bits set in to  convey other info.

2) If errorlog dev is not open, gets dumped to tty8 via console printf
   instead of getting stuffed in clist..

3) A bad block of memory may now be declared (before bootup) by
   patching locations 52 and 54 to contain low and high click
   addr's of badmem.  ken/main.c/main() skips mem when coremap
   is inited.

(The rest of this entry is for last week)

Cleaned up tty BLITZ code in dev/tty.c nulltty().  There were a couple
of race conditions which resulted in a wrong inode reference count
to occur about once a week under heavy load.  If background proc's
exited at same time (within a millisec or 2) several seconds after
tty BLITZ was started and iget/nami got hung up in a disk wait for
a while, then the inode ref count on the tty inode was 1 too small.
Eventually this resulted in a new login coming up with his file
pointers pointing to thin air, usually the incore inode was still
there so things usually worked.  If there was lots of file activity,
somebody else got the incore inode (usually a directory search) and
login/motd wrote garbage into the middle of whatever file this inode
(or directory) pointed to.  Put a check into ken/iget.c iput() to
scan file table for any entries pointing the incore inode being
deallocated (count=1).  "Panic: Dead inode" if file pointers
found  pointing to inode being deallocated.

Make copy of system to send to Bell, Jimmy at Tektronix, and Mike
O'Dell at U. of Oklahoma, all of which have UNIX/PWB licenses
(except maybe Bell, but they don't need one).

--ghg

Fri Dec 29 04:13:52 1978

Updated /bin/nice, /usr/bin/notty, /usr/bin/notl, /usr/bin/nohup,
/bin/time to use new execute() routine which handles shell command
files.  Sources to /src/s2/*.c
-TGI

Mon Jan  1 02:18:06 1979

/src/s2/remind.c fixed to call the shell
with extra dummy argument, to fix problem
of signals being caught by shell commands.
/usr/bin/remind to /usr/bin/old/remind
new bin to /usr/bin/remind
-TGI

Tue Jan  2 15:58:31 1979

Changed ken/rdwri.c writei() to do a bdwrite() instead of a bawrite() on block
writes if inode link count == 0  (most probably a pipe).  This effectively
means we now have incore pipes.  Tests showed little improvement, but
it may be better under heavy system load.  Pipes will still migrate to
disk if they are left idle for awhile, but won't be "force-written"
to disk regardless anymore.
--ghg

Tue Jan  2 23:11:10 1979

new pucc daemon (/etc/ccd).  see /src/pucc/HISTORY.  old daemon "/etc/ccd."

Sat Jan 13 11:20:14 1979

Fix to tty.c - race condition where multiple blitz's could be done (nultty())
to a tty, would hang tty since nulltty() interlocks inode for blitz.  Happened
if a stty function was issued immediately after a stty blitz from another
proc.  The "con" program was the worst offender.  We had run about 1 month
before this showed up.
--ghg

Thu Jan 18 14:54:11 1979

Corrected a couple of overstrike sequences in tty.c (O<bs>B and O<bs>N were
supposed to be J<bs>B and J<bs>N.  Sysgened to new-unix.  Production kernel
corrected by using /dev/apl and PDH's loadapl program.
				--John Bruner

Sat Jan 20 09:48:52 1979

All new printer spoolers and daemons.  Attempts to handle "-nr" flag (nroff)
(same as -fo) which conditions output device to accept nroff output.
Basically, 66 line mode, print over crack, and do not swallow \n's and
FF's if at page boundry.  Also cleared out group bits in create's of the
daemon control files.

Spoolers changed in /src/s1: epr.c lpr.c 67r.c  binary edited to /lib
daemons changed in /src/s1: epd.s lpd.s 67d.s  binaries edited to /etc

Minor change to scheduling strategy.  Changed ken/slp.c setpri() to double
effect of p_cpu penalty when figuring out new priority.  Use "p_cpu/8" instead
of "p_cpu/16".  This keeps large proc's and those submitted with a
nice of +30 or so from getting COMPLETELY locked out when less considerate
users run small proc's at nice 0.
Propagated sched mod to Potter.
--ghg

Tue Jan 23 14:30:19 1979

Added Jimmy's (?) "atof" and "nargn" routines to the /lib/f4p/suplib.obj.
"atof" was written in F4P, while "nargn" was written in macro-11.  Old
library renamed to /lib/f4p/suplib.old in case of any problems.

					--John Bruner

Wed Jan 24 07:10:44 1979

Install KT's  disktest.  Src to /src/s1, doc to chap8, bin
to /u/bin.  Added "b" command to set buffer size via sbreak call,
and "f" command to fork (detach from terminal) on next g,r,w command.
Also several misc cleanups.
--ghg/kt

Wed Jan 24 16:04:01 1979

New versions of apl, apl2 installed.  Older copies updated accordingly
(e.g. "apl" becomes "oldapl", "new/apl" becomes "apl", etc.)   New
versions include the ")list" system command, and also allow ")erase"
to take multiple arguments.  A bug in quad input was also fixed.
Unbuffered versions installed as "uapl" and "uapl2".

				--John Bruner

Fri Jan 26 07:03:09 1979

"forked" off a copy of UNIX for Fu's PDP-11/45 (AARL).
--ghg

Sun Jan 28 12:06:09 1979

Problem with Dectapes and buffer pool.  On dead idle system, when
one finished with a dectape, still had incore copy of directory
and other blocks. Dev driver close()'s call to bflush(dev), only
caused async blocks to be written, not removed from buffer pool.
User switched tapes, and tp used first tape's dir and clobbered
things.  Fix:
in dev driver tc.c close():

change the bflush(dev) to bclose(dev) [new routine in bio.c]
In addition, a sleep(&lbolt,PRIBIO+3) is done until tctab.d_actf
is clear (I/O queue for dev is done) before bclose() call.

In bio.c, add routine bclose(dev) which first does a bflush(dev), and
then scans buffer free list for all buffers on dev and sets
minor dev to 0377 which disassociates buffer from dev. 

This is a SERIOUS day one UNIX bug and needs to be fixed if any
kind of physically dismountable media are being used.
--ghg

Mon Feb  5 12:06:11 1979

New schedualer, (ken/slp.c) now boots out oldest SWAIT proc, instead of
first SWAIT proc when looking for core.  Also lets SWAIT stay in for
3 sec before booting.
--ghg

Mon Feb  5 22:30:31 1979

Added a line to /etc/rc to initialize /dev/ttyl
(the HP 2640 plotter) line to appropriate modes.
-TGI

Sat Feb 10 09:07:33 1979

Removed penalty for excessive core  use in slp.c/setpri().  We now have
adequate core and this is not needed.
--ghg

Sat Feb 10 12:15:50 1979

Copied /usr2/sys/param.h to /usr/sys/param.h (/usr/sys copy was out of date).
--J. Bruner

Mon Feb 12 13:13:25 1979

Updated /bin/motd.  Turns out I had some "exit" calls in "spmsg" which,
when /usr2/news/trmsg didn't exist, caused motd to go away before printing
the bad password/last login repot.  Changed them to "return" statements.
(DUMB!!!!)  Corrected source to /src/s2, bin to /bin/motd, owned by bin,
mode 5705.
--J. Bruner

Thu Feb 15 21:49:29 1979

Testing new remind.. added line to /etc/rc to restart daemon
after boot...

--kt

Sat Feb 17 09:36:25 1979

Kernel changes during last week or so:

1) Reduced "sclschd", the number ofcpu ticks (user+sys) after which
   a proc is sceduled to run in background was reduced from 45*HZ to
   25*HZ.

2) Added global variable "slice" in clock.c. The scheduling cpu penalty
   "p_cpu" is now incremented every slice ticks rather than every tick.
   This tends to reduce swtch() activity and lets new proc's get a longer
   shot at things, encouraging more interactive use of the system.
   Tweeking on the fly showed a good value for slice to be about 20.,
   however, I am still not convinced this is really needed and more
   testing still needs to be done (if I ever get time).

3) I/O scheduling penalty (_sysched in rdwri.c) was reduced from 20. to
   1.  We now have SI disks online and extra controllers have dinimished
   need for it.  Also reduction of scslchd and item #4 tends to
   eliminate the need for sched penalty for excessive I/O.

4) The reschedule in trap.c (after a sys call finished) was eliminated
   as this was causing excessive swtch() calls.  Instead, a call to
   setpri is done for current proc and curpri is updated.  This change
   appeared to give about a 20-30% boost in cpu throughput under heavy
   load and also gives good interactive response.
   PWB/Unix used basically the same approach.

5) Another day one V6 bug popped up when a user tried to run a proc
   (split I/D) with had text size just a few bytes shy of 65536 and
   crashed system.  Text size got "rounded up" to 0 and all kinds of
   bad things happened.  Changed estabur()/main.c to return error if
   text size == 0 and split I/D. Not sure what PWB/UNIX does with this
   one.  PWB test shows proc just gets "killed", but the swap may
   have done that.  Both V6 and PWB will not work when text is within
   16 bytes of max since a dpadd is not used to set u.u_offset when
   reading in data seg (skipping over text + header).  I was unable
   to get PWB as + ld to make an a.out which had over 65536.-64. bytes
   of text.  He apparently also internally uses 64 byte "clicks"
   for reserving memory.  However CULC's F4P & linker have no trouble
   making such files.  The fix in estabur() causes error "ENOMEM" to
   be returned if proc tries to use last click of text space in I/D.
   It would be nice to allow last 64 bytes of text space to be used
   but all kinds of things seem to blow up when this is attempted.

6) Changed bio.c/bclose() to take 2 args; dev and ptr to devtab
   for device being closed. (see this file a couple of pages back
   for reasons for new bclose() routine).  Now I/O drivers don't have
   to wait for I/O queue to drain, just call bclose(dev,devtab ptr).
   devtab ptr is needed since one may close a "raw" device which
   doesn't have a devtab entry in bdevsw.  Currently only the dectape
   driver tc.c has been changed, although the disk drivers should 
   probably also be changed, even if not physically dismountable.
   The following sequence will sometimes cause problems.

      Assume a crash occured and rk1 is umounted with a damaged
      filesystem, needing a (icheck -s) recovery.

      # icheck /dev/rk1
        all kinds of dups in free
        ...
      # icheck -s /dev/rrk1
      # mount /dev/rk1 /dir

      The first icheck was done on the buffered (cooked) dev and
      discovered filesys errors and probably left the bad super
      block in the buffer pool.  The second icheck fixes the filesys
      using the raw device and the buffer pool isn't touched.
      The mount reads in the superblock which is still in the
      buffer pool and the wrong superblock is used for the mount.
      One can also get into trouble with clri's and other mixing
      of the raw and cooked entries to a disk if a bclose() call
      is not made in the driver.

      It is possible to avoid problems when mixing raw/cooked
      (without the bclose mod) by manually flushing out the
      buffer pool.  For the above case: 
      "dd if=/dev/rk0 of=/dev/null count=300" should be executed
      before the icheck -s /dev/rrk1.  This will get rid of
      any incore blocks hanging around on rk1 before fixing
      filesys.
--ghg

Sat Feb 17 16:57:53 1979

New /src/s1/login.c  Added kt's fixes to routine getpwn() to TGI's rewritten
version of login.  Bin to /bin/login. This version allows users with
8 char login names to login to tty: .
--ghg

Sun Feb 18 13:04:31 1979

Made tape of system to send to Mel Ferentz for UUG distribution.
--ghg

Fri Feb 23 07:08:07 1979

New /src/s2/password.c - doesn't allow null passwords. (needed for next
prog).

New program /etc/hashpw generates a sort of lookup table for /etc/6passwd.
Index is in /etc/6passwd.hash, also changed login to use this file if it
exists.  /etc/hashpw should be run if length of 6passwd is changed.
Add-users will be changed to run /etc/hashpw when accounts are generated.
--ghg

Fri Feb 23 11:55:17 1979

New df to /bin, source to /src/s1.
Checks block-special BEFORE opening for
things like /dev/mt?, /dev/xx?, and other
open()-sensitive devices.
-TGI

Tue Feb 27 12:38:43 1979

New dd "ndd" to /bin.  This was Jimmy's new dd program + a couple of new
features.

1) conv=seek - seeks down file instead of reading (disk only).
2) conv=fill - when "bs=xxxx" specified, does multiple reads to
               make sure each buffer is full before writing out.
		Can be done with ibs and obs, but data is moved
		and this is INEFFECIENT for entire filesystems.
		Usefull for copying pipe input to tape with long records.

src to /src/s1, doc to chapter1
--ghg


Tue Feb 27 18:27:05 1979

Fixed "uid" program.  "getpwn" was incorrectly assuming that the end of the
u-seek file had been reached if a record was read which started with a zero
byte.  Thus, as soon as it hit a UID which was unassigned, it stoped reading
and declared the user name it was searching for illegal.  Apparently this
worked before because there were no "holes" and the last blast of old users
made the problem turn up.  Source to /src/s2, binary to /usr/bin./uid.
				--J. Bruner

Wed Feb 28 12:38:54 1979

Shell file /usr/bin/getd prompts user for remote machine, then for login name,
password, and directory pathname on that machine, then essentially performs
a "getdir".  If any field is null, "getd" aborts.   I wrote "getd" to get
around the problem that "cpio" blows up if a file or dir is not world
readable when "getdir" is run (using uid=13).  Installed in /usr/bin at ghg's
suggestion.

--J. Bruner

Thu Mar  1 13:35:07 1979

Installed new versions of APL in new/apl, new/apl2 and updated older versions.
The new versions should correctly buffer pipes (a sore point).  In addition,
filenames > 14 characters will no longer mess up ")lib" printout and mutiple
")drop" arguments are permitted.
				--J. Bruner

Mon Mar 12 10:38:42 1979

Moved /usr/ccd/transcript to /usr/ccd/transcript.old since it's about
990 blocks and ordinary users can't read it beyond 600 (I think) blks.
tail'ed it onto a new /usr/ccd/transcript file.  I made the new file
mode 0604 also.
-TGI

Tue Mar 13 14:01:27 1979

Increased getpw buffer size for "trino" from 64 to 128 bytes to guard against
possible future increase in "getpw" record length.  Source to /src/s2/trino.c,
binary (not shared -- unlikely to be running more than one at once) to /etc.
It looks like "ls" and "ps" have a bug I caused 1.5 years ago when I installed
the "u-seek" junk -- fix on the way for these.

					--John Bruner

Fri Mar 16 09:44:29 1979

New "ls" and "ps" binaries to /bin, sources to /src/s1/ls.c and /src/s2/ps.c
The change fixed an old bug which I introduced when I put the seek-file stuff
in a long time ago.  The bug never made its presence known, but could
potentially caused some nasty problems.  "ls" can now be compiled with new
(V 7) C compiler, "ps" still requires "occ".  Old binaries still around
in /bin/old.

				--John Bruner

Sun Mar 18 18:13:16 1979

New versions of APL.  Scalars and 1-element vectors (but not 1-element arrays)
are now properly extended.  A bug in indexing was fixed.  The APL terminal
mapping table was adjusted so that "A" is not mapped to "^" anymore -- a
change requested by Professor Reeves.  Former apl,apl2 to oldapl,oldapl2;
former new/apl,new/apl2 to apl,apl2.  New binaries in new/apl,new/apl2.

"uapl" and "uapl2" are unbuffered version of APL.  If the fix made a while
back for pipes seems to be ok I'll delete these in the near future.

				--John Bruner

Thu Mar 29 12:50:25 1979

fixed "o'dell's" login.c problem;  password compare now uses ssystem strcmp()
function.   this is a temporary patch only;  new login stuff (in /src/ha)
will go in shortly.

old login in /bin/old/login (not world executable)

Mon Apr  2 08:27:07 1979

Moved corrected bc helpfile over from Potter.  The pseudo variable
ibase doesn't exist as described in the documentation.  The correct
variable is "base".
		Scott Deerwester

Fri Apr 13 21:41:36 1979

New version of mail to /bin/mail
Source to /src/s2/mail.c
Added interlock files "/tmp/md00000" for the
destination user id.  This minimizes the chance
of mailboxes becoming trashed by several mail's
being done concurrently.  In addition,
"mail -f people..." will fork() immediately
after receiving the EOF, allowing a minimal
wait for bulk mailing.
--TGI

Wed Apr 18 08:59:56 1979

New version of l.  Doesn't require a cr at the end
of the last file listed to exit.  Source to /src/s1/l.c
binary to /u/bin/l.  Motivated by students sitting in
the library at Potter watching a blank screen for 10
minutes waiting for an empty file to be listed.
--scott

Thu Apr 19 18:10:43 1979

Finally installed new "motd" stuff on the A machine -- seeks to 16*uid in
/etc/banner-log instead of reading it sequentially.  Average login response
should be greatly improved as a result.  Appended /v/news/banner to
/v/news/old-banner-msg and zeroed /v/news/banner.  /bin/motd owned by bin,
mode 5705.
--John Bruner

File /usr/include/banlog.h defines format of /etc/banner-log entries.


Wed Apr 25 11:30:34 1979

Added host names "fu" and "arpa" to host table for net.
New con/csh to a,p,b,fu.
New /src/mx/lmx.c and /lib/libmx.a
--ghg

Wed Apr 25 12:09:13 1979

For Carl Crawford's graphics stuff:
I made the following:
	/usr/include/calcomp.h
	/usr2/news/graphics	(directory)
	/lib/libG.a
	/usr/bin/qplot
on "a" machine, and the same as well as
	/usr/bin/gp
on "b" machine.
All are chown crc.
--TGI

Thu May 10 10:15:58 1979

Fixed bug in disktest.c, changed int's to char ptr for block no's.
Was doing calc's wrong of blocks >= 32767 with large buffers.
--ghg

Tue May 15 06:53:58 1979

Minor changes to si, sj, hp, hs device drivers.

All: print out word count reg on dev error.
hs, hp: check for nz word count, and treat as a deverror
si, sj: special check for go bit up when interrupt comes up.
--ghg

Sun May 20 09:03:44 1979

  System changes over last week or so.

Running on Unmapped SI disk controller on massbus.  Much better
than Unibus version.  Optimum sector interleave is 33/15,
I would have expected 33/3 or 33/4.  New controller (/dev/sj?)
is at csr=171700, vec=260.  All filesystems on B machine and 11/70
converted to unmapped format.  Also new filesystem layouts, see
dev/si9400.c for details.  Filesystems are now as follows:

11/70
-----
mount	old dev	new dev	size
-----	------	-------	----
root	si0	sj4	12500 (5000 root + 7500 swap)
/a	si1	sj3	65500 (user files)
/c	si2	sj7	65500 (incoming distributions)
/d	si17	sj0	65500 (really scratch)
/tt	si18	sj1	65500 (old tech typing files)
scratch	si33	sj2	65500 (scratch)
/usr2	si34	sj5	65500 (user files)
scraps	si??	sj6	65500 (new filesys from pieces -- scratch)
scraps	si??	sj8	42600 (new filesys from pieces -- scratch)

11/45 (b machine)
-----------------
mount	old dev	new dev	size
-----	-------	-------	----
root	si0	sj4	12500 (5000 root + 7500 swap)
/b /usr	si1	sj3	65500 (user files -- no back up)
/usr2	si2	sj5	65500 (user files -- no back up)
/a	si17	sj2	65500 (user files -- no back up)
/c	si34	sj6	65500 (Info sys Leon's IEEE Dict - backup to 11/70)
		sj0	65500 (scratch)
		sj1	65500 (scratch)
		sj7	65500 (scratch)
		sj8	42600 (scratch)

SI root on 11/70 is just spare incase RP04 fails.
New df and update with table changes to reflect filesys changes in
each machine.
--ghg

Thu May 24 10:18:36 1979

installed lex stuff from pwb distribution.  binaries to:
/usr/bin/lex
/lib/libl.a
/usr/lib/lex/ncform

source directory copied to /src/lex/*

Tue May 29 08:22:05 1979

Automatic filesystem recovery now seems to work.  Fixed minor bug in
that "size mismatch" error (where inode size > # of blocks assigned 
to file) would force a freelist rebuild (which wouldn't fix the
size mismatch).  If this happened on rootdevice, then system could
not be booted, because there was "always" something wrong with the
root filesystem.  Another procedure error, "bootchk -r /dev/rsj4"
on b machine caused an orphaned inode not to get cleared (on root).
Couldn't boot system.  Since raw device was used for root (which
is mounted), inodes living in same disk block as one getting cleared
were pulled in, and when sync'd, that block was in buffer pool, and
just rewritten to disk, overwriting the clri'd inode on the raw
device.  conclusion: one must ALWAYS used a "cooked" filesystem
on bootchk when talking to the rootdevice.

	New program "bootchk.c" (modified version from Toronto)
and new icheck/dcheck to /src/s1.  Binaries to /bin, and doc to
chapter8.  /etc/rc modified to call shell file "/etc/recover"
if a filesystem recovery is needed (system crashed).  /etc/recover
calls up bootchk on filesystems.  Propagated to all network
machines.

	With the advent of automatic filesystem recovery (hopefully
most of the time), other people (without knowledge of UNIX filesystem
recovery methods) can now boot up a production UNIX system
after a crash. Boot procedures for all network machines have been
printed out and posted under the CPU front panels and copied to
doc chapter 8.
--ghg

Sun Jun 17 11:40:35 1979

Change ht driver to write EOF on zero byte write.
--ghg

Sun Jun 17 11:54:31 1979

Minor bug fixes in automatic filesystem recovery.
icheck - a "bad" block on the freelist (not bad freeblock) would cause
         recovery to fail.  Changed to rebuild freelist for this error.
dcheck - code to stuff orphaned inode in /lost directory was not zeroing
	 all 14 bytes of filename, causing ls to get upset. Changed to
         zero entire entry before inserting filename. 

	Dual Drive-Dual CPU SI disk controller installation completed.
Everything seems to be working great.  11/70 end has 1 massbus and 1
Unibus interface. 11/45 has 2 unibus interfaces.  No special software
will be needed to handle contention between drives/controllers.  B
machine (11/45) still has bus problems, gets bus hangs when running about
50% of I/O DMA devices.  11/70 is rock solid, ran about 3 hours of all
DMA devices "wide open", no problems.  Unibus throttle count set to 4
on 70 cpa, if set to 8, DMC-11 starts complaining since unibus bandwidth
is all used up.  On 11/70 /dev/sj[0-8] will be massbus controller to
drive 0, sj16 on up will be massbus controller to drive 1.
/dev/si* will reference same disks as /dev/sj*, however Unibus controller
port will be used.  A mirror image of this also exists on b machine,
however there are 2 unibus controllers.  In about 3 weeks, 70 unibus
controller will go to a massbus version.  RS04 will be taken out of
an RH70 slot and hung on as TU16 unit #1, on his RH70 to make room.

Make distribution tape to take to Toronto UNIX Conference.
--ghg
