Trailing-Edge - PDP-10 Archives - AP-D543V_SB - lgn60a.doc
There is 1 other file named lgn60a.doc in the archive. Click here to see a list.

LOGIN.DOC -- Changes from V60(631) to V60A(634)
August 1978

COPYRIGHT (C) 1974,1976,1978 BY



LGN60A.DOC                                                      Page 2

LOGIN.DOC -- Changes from V60(631) to V60A(634)
August 1978


This release of LOGIN is being sent with 603A and only includes  those
edits  which  were  sent as correction files with release 6.03 and the
scheduler  LIR.   A  combined  correction  file,  LOGIN.COR,  is  also
V60A(634) is the field image version plus 3 edits.   See  section  5.0
for a list of the patches.

LOGIN is documented in Software Notebook Vol.  2.


There are no external changes.


The bugs reported via SPR's are not included in  this  release.   This
release  only includes the correction files shipped with 6.03 and 6.03
scheduler LIR.   MACRO  V53  will  not  assemble  the  POINTER  macros




Edit #


       LPT (DN87)


[End of LGN60A.DOC]

[LGN60.DOC is appended as an integral part of LGN60A.DOC]
LGN60.DOC                                                       Page 3

LOGIN.DOC -- Changes from V57 to V60(631)
August 1976


This is a maintenance release of LOGIN.  Most of  the  edits  are  bug
fixes  which  will  increase  LOGIN's  stability  in  the field.  Also
included is (unsupported) code to allow the user to change his/her own
password and a system for encrypting passwords for greater security.

LOGIN is documented in Software Noteboook Vol.  2A.

This version of LOGIN supersedes all previous versions.  It runs under
all  supported monitors.  LOGIN V60 has been tested successfully under
5.07B/6.01B, 6.02, 6.02A, and field test versions of 6.03.

The following CUSPs must be used with LOGIN V60:

     MACRO version 50 or 52
     SCAN and WILD version 7
     FACTOR version 1


There are three new switches supported in LOGIN version 60.

/UFDPROT:nnn   Set protection of created UFD's to nnn
/SFDPROT:nnn   Set protection of created SFD's to nnn
/DEFPROT:nnn   Set default protection for  all  files  created  during
               this  terminal session to nnn (requires monitor 6.03 or

There  are  also  two  switches  controlled  by  assembly  conditional
switches  which  are  normally  off.   This code is unsupported and is
supplied solely as a convenience to the user site.

Assembly switch PSWCHG turns on code to allow users  to  change  their
own  passwords.  If this switch is turned on, it enables the /PASSWORD
switch.  This switch is ignored in SWITCH.INI, but  if  typed  on  the
LOGIN  command  line  it causes LOGIN to prompt "New password: " after
the old one has been validated.  The  users  types  his  new  password
(which  is  echoed to prevent typing errors from locking a user out of
his own PPN).  This password is then written into ACCT.SYS and becomes
the user's new password.

Assembly switch NCRYPT turns on code that  performs  a  non-invertible
hashing function on the user's password before checking it against the
one in ACCT.SYS.  This assumes that the password  was  hashed  by  the
same  function  before being stored in ACCT.SYS.  The purpose of doing
this is that if only hashed passwords are  stored,  then  even  though
someone  gains  access  to ACCT.SYS, he still cannot use the passwords
LGN60.DOC                                                       Page 4

since there is no way to convert the hashed passwords  back  into  the
real  ones.   The one drawback is that if a user forgets his password,
there is no way to find it out:  he must  simply  create  a  new  one.
REACT  is  not  yet  coded  to  hash  passwords before storing them in
ACCT.SYS, but it is a simple matter to copy the routine from LOGIN (it
is only half a page long) into REACT.




Previous versions of LOGIN never checked the "may log in under  Batch"
bit  in  ACCT.SYS  for  [1,2] jobs.  Since LOGIN version 60 now checks
this bit, you should be sure that this bit is set if you plan  to  run
batch jobs under [1,2].  Previous versions of LOGIN also never checked
the bit which says "may log in as a Batch job subjob".  Since this bit
is  now  checked,  you may wish to revise your ACCT.SYS entries if you
plan to have Batch jobs log in subjobs in any manner.


Edit #

540      Check creation date-time of accounting files and rebuild high
         segment database if they have changed.

541      Give warning message if not JACCTed.

542      Fix /VERB and /MESSAGE

543      Move call to RNMAIL to before the LOGIN UUO so it  has  JACCT
         and can rename mail to user's area.

544      .REQUEST SCAN, WILD, and  HELPER  to  simplify  assembly  and

545      Fix one more bug in /CORE.

546      Determine 2741-ness of terminal early enough so  we  know  to
         unlock the keyboard when giving the # prompt.

547      Allow /QUOTA to force recomputing even if  other  users  same

550      Add /SFDPROT:nnn to do the obvious.

551      Rewrite /CORE logic once and for all.
LGN60.DOC                                                       Page 5

552      Reorder some code to make it less convoluted.

553      Fix bug in WAITO routine.

554      Add /UFDPROT:nnn to do the obvious.

555      Don't allow ATTACHes after KSYS unless OPR or son-of-OPR.

556      Clean up the listing.

557      Add two (unsupported)  security  features.   Assembly  switch
         NCRYPT  causes  password  encryption  before  comparison with
         ACCT.SYS.  REACT should  encrypt  passwords  using  the  same
         algorithm  before  storing  them  if  this is used but is not
         coded to do so yet.  Assembly switch PSWCHG enables  code  to
         allow  users  to  change  their own passwords via a /PASSWORD

560      Remove the significance of slash in PPN (but still allow it -
         old habits die hard).

561      Do extended LOOKUP of FACT file so we always get file's exact
         length in words.

562      Don't assume any error return while reading  ACCT.SYS  is  an
         end-of-file.  Check it and print a useful message if there is
         a real error while reading it.

563      Don't enable control-c if user is locked into running a cusp.

564      Clean up exit sequence.

565      Re-init stack every time through LOGIN3.

566      Turn RP.LOG off if user control-c's while recomputing  so  he
         won't recompute needlessly next time.

567      If either half of LIB PPN is zero, default  to  corresponding
         half of logged-in PPN.

570      Clean up some code.

571      Remove FACT file code from LOGIN and put  it  in  a  separate
         module called FACTOR.

572      Add check to bypass blank AUXACC.SYS entries.

573      Fix ?LGNSND error in monitors with LIMLVL=5.

574      Save M, N, and CH over STUFBS if the message is typed  so  we
         don't garbage the quotas.

575      Make Batch jobs wait twice as long for  UFD  interlocks,  and
         don't let them break it down at all.
LGN60.DOC                                                       Page 6

576      Fix ?ILL MEM REF when CUSP-to run doesn't exist.

577      Allow OPR to log in even if no AUXACC.SYS.

600      Only type error severity number to Batch jobs.

601      Add TWOSEG to LGNDCL so LOGIN assembles with MACRO v.52

602      Check JBTLIM to see if we're a Batch job so we  don't  depend
         on BATCON being called that.

603      Check times-to-log-in for Batch jobs and P.LGBT.

604      Fix ?SCNNDV Null device illegal mesage from SCAN on  2nd  try
         at logging in.

605      Rewrite code at NOJBMS through TTYDET to fix bugs  introduced
         by edits 602 and 603 and to make the code readable.

606      Allow ATTACH and LOGIN after KSYS from local TTY's.

607      Fix problem in edit 605.

610      Allow passwords in entries which span disk blocks in ACCT.SYS
         to be changed.

611      Prevent strange races in ATTACHes.

612      Make ?may not log in remote/batch subjob/batch/dataset errors
         fatal so BATCON won't waste time trying the jobs again.

613      Clean  up  the  listing;   remove   unreferenced   data   and
         unreachable code.

614      Add a missing POPJ to end of ENTPTH.

615      If LOGIN dies for any reason, SETNAM  to  FLUSH  rather  than
         LOGIN to avoid kludge in CLOCK1.

616      Don't change UFD protection unless /UFDPROT specified.

617      More changes to make LOGIN assemble with MACRO v.52.

620      Implement /DEFPROT:nnn.

621      Don't type strange garbage if logged-in user types .R LOGIN.

[End of LGN60.DOC]

[LGN57.DOC is appended as an integral part of LGN60.DOC]
LGN57.DOC                                                       Page 7

LOGIN.DOC - Changes from V56 to V57
July 1975


The principle purpose of this release is to provide  support  for  the
new features of the 6.02 Monitor;  specifically, to set ENQ/DEQ quotas
and to place the job in the  appropriate  scheduler  class  on  Login.
Also  included are several bug fixes and hooks for external accounting
modules to simplify the task  of  adding  extra  accounting  logic  to

LOGIN is documented in Software Noteboook Vol.  2A.

This version of LOGIN supersedes all previous versions.  It runs under
all  supported  monitors.   The  DATE75  project is fully implemented.
LOGIN V57 has been tested successfully under 5.07A,  5.07B/6.01B,  and

The following CUSPs or later must be used with LOGIN V57:

     MACRO version 50
     SCAN and WILD version 7






4.1  ENQ/DEQ:

REACT V31 has an extra question which  asks  for  the  user's  ENQ/DEQ
quota.   This is stored in bits 27-35 of the expiration date word, the
right half of which was previously unused.  LOGIN reads this  quantity
and passes it to the Monitor as the user's ENQ/DEQ quota.  However, if
these bits are all ones, LOGIN does not set the quota.  When the  user
first  does  an  ENQ, Monitor will then supply the current system-wide
default quota.
LGN57.DOC                                                       Page 8

4.2  Scheduler Parameters:

REACT V31 has another new question which asks for the user's scheduler
type.   This  9-bit quantity is stored in bits 18-26 of the expiration
date, the right half of which was previously unused.

When LOGIN V57 is first run, it reads a  new  accounting  file  called
SCDMAP.SYS  into  its  high  segment.   This  file  provides a mapping
between scheduler types, which are stored in ACCT.SYS,  and  scheduler
classes,  which  is what the scheduler and SCHED.UUO talk about.  When
the user logs  in,  LOGIN  gets  his  scheduler  type  from  ACCT.SYS.
SCDMAP.SYS  is  a binary file with 4 entries per word.  Entry number n
is the scheduler class for type n.  In other words, SCDMAP.SYS is  set
up  somewhat like a page map.  LOGIN computes an index into SCDMAP.SYS
from  the  scheduler  type  read  from  ACCT.SYS  and  picks  up   the
appropriate  scheduler  class  from its copy of SCDMAP.SYS in its high

SCDMAP.SYS has two parallel tables in it.  The first 512  entries,  or
128  words, contain the mappings from types to classes for timesharing
jobs.  The second 512 entries contain the mapping of types to  classes
for  batch  jobs.   Thus,  system administrators can specify different
scheduling priorities for batch jobs and timesharing jobs.

SCDMAP.SYS is generated by a new CUSP called SCDSET.  This  CUSP  also
tweaks  the  scheduler  on  the  fly.   This  CUSP  must be run before
bringing up LOGIN V57 in order to create  SCDMAP.SYS.   If  SCDMAP.SYS
does  not  exist  or  cannot be read, the first user to run LOGIN will
receive the warning message:

     Cannot find SCDMAP.SYS.  Please call the operator.

Only the first user will receive this message as LOGIN sets a flag  in
its  hi  seg  and  if  it could not read SCDMAP.SYS the first time, it
doesn't attempt to do any of the scheduler stuff.  Installations which
are  running  Monitors  without  the  new  scheduler  need  not create
SCDMAP.SYS as LOGIN checks the second states word in Monitor and  does
not  attempt any of the scheduler setting code if the Monitor does not
support it.  It should be mentioned that  if  any  of  the  accounting
files  (not only SCDMAP.SYS) are modified while the system is running,
LOGIN should be renamed to itself.  This will supersede  the  copy  of
LOGIN  on  the  swapping  space which would otherwise contain obsolete
indices  into  ACCT.SYS  and  AUXACC.SYS  and  an  obsolete  copy   of
SCDMAP.SYS.    For   more  detailed  information  concerning  the  new
scheduler and its parameters, see the DOC file for SCDSET.
LGN57.DOC                                                       Page 9


Edit #

420      Fix security bug in ATTACH.

421      Fix test for detached line.

422      fix bug in recomputing logic which caused file structures  to
         be omitted from search list.

423      Add /RTCOMP switch.

424      Make LOGIN use all of hi seg for  ACCT.SYS  directory  (LOGIN
         used to always expand core even when not necessary).

425      Add code to read SCDMAP.SYS and set scheduler classes.

426      Fix bug in ENQ/DEQ routine.

427      Check for end of TABSTR in Tiny Monitors.

430      Make a -1 ENQ/DEQ quota entry mean don't set the quota so  on
         the  first  ENQ  Monitor  will  supply  a system-wide default

431      Skip about 30 useless instructions if non-6.02 monitor.

432      Do a CRLF after typing "No operator coverage".

433      Fix possible race condition in SCHED.   table  logic  and  do
         some random code cleanup.

434      Allow switch alone on cmd line (so /HELP wins).

435      Allow CR in response to # without nasty error message.

436      Add some preliminary hooks for external accounting module.

437      Fix bug related to VM and ACCT.SYS version 4.

440      When saying "Other jobs same PPN", tell him what jobs.

441      Make start address and program name work right.

442      Move call to .OSCAN so A) user has search  list  when  it  is
         called,  and  B)  /NAME  works right without the necessity of
         hacks like edit 355.

443      Finish the job of edit 442 by removing SETTMP and CLRTMP.

444      Code cleanup.

445      Don't tell [1,2] jobs which jobs are also under [1,2].
LGN57.DOC                                                      Page 10

446      Fix spurious error message in Tiny Monitor.

447      Make .LOGIN[proj,prog,sfd,sfd,...]/switch work.

450      Add /NOTICE:arg switch to control printing NOTICE.TXT.
         arg=ALWAYS to always see notice
         arg=SOMETIMES to work like slash in PPN
         arg=NEVER to never see notices.

451      Re-allow user to have different path than logged-in PPN.

452      Use second 512 entries of SCDMAP.SYS for batch jobs.

453      Make default for /NOTICE be sometimes.

454      Fix bug in sfd logic and typo in /NOTICE logic.

455      Make /VERBOSITY work right.

456      Convert all output TTCALLS to use buffered tty output.

457      Add /PATH switch to do the obvious thing.

460      When doing a recompute, sprinkle some OUTPUT TTYs  around  to
         keep the user patient.

461      Add a few more OUTPUT TTYs and fix security breach in ATTACH.

462      When ATTACHing to a job whose ACCT.SYS entry requires a name,
         only  ask  if  there  is  a name in ACCT.SYS against which to
         check it.

463      Fix possible bug in scheduler table building logic.

464      Reserve BATMIN jobs for Batch.

465      Add another OUTPUT TTY.

466      Save error code over call to UFDSMB at LGNCAS [SPR 10-15873]

467      Make /PATH in SWITCH.INI work.

470      Add /ASSIGN:phys:log to do the obvious.

471      Edit 467 broke /SPOOL.  Fix:  add the oft-forgotten -1  after
         a BLT.

472      Split TRMOP.s into two groups:  those which  should  be  done
         before  printing  notices,  and  those  which  should be done
         afterwards.  Currently, the only ones which  are  done  after
         are speed.
LGN57.DOC                                                      Page 11

473      Fix halt when /ASSIGN used without logical name.

474      Fix possible stack phase problem in PARSE.

475      Add timeout to WAITO routine.

476      Fix bad return from error recovery routine in LGNDSK.

477      Check LOGMAX for Batch jobs and add  a  new  class  of  error
         message  for BATCON:  REQUE, error code 5, meaning reque this
         job and don't schedule any more jobs for a little while.

500      Removed by edit 505.

501      When scanning all job numbers, scan thru HIGHJOB, not LOGNUM.

502      In a sequence of /ASSIGNs, the last one is not  done.   Cure:
         change an AOJL to AOJLE.

503      When LOGMAX is exceeded LOGIN tells  you  and  then  cleverly
         proceeds to log you in.  Fix:  treat REQUE as a fatal error.

504      Put EQACT in the high seg where it belongs.

505      Check BATMAX rather than LOGMAX for Batch  jobs.   LOGMAX  is
         now  (re-)defined  to  mean  the  number of interactive, user
         (non-OPR) jobs allowed to be logged in.  Also add conditional
         assembly switch BATMAX which will turn on the BATMAX-checking
         code.  This requires edit 1055 in BATCON.

506      Make .LOG 3,4[5,6] work.

507      Add an error message if the ENQC.  UUO fails.

510      Clean up some error messages.

511      Fix bug in /CORE logic;  add some error  messages  for  "this
         can never happen" type stuff.

512      Add check in TYPE routine to POPJ right out if name  of  file
         is  zero  (no  name,  no wildcards) to avoid a bizarre bug in

513      Don't turn off echo until entire command  line  is  typed  so
         continuation lines will echo.

514      If UFD interlock is busy too long, get impatient and clear it

515      Make sure RP.LOG gets set.

516      Code cleanup.
LGN57.DOC                                                      Page 12

517      Don't type "No operator coverage" on every retry

520      Don't bother clearing TMPCOR.  Lock out ctrl-c while we  have
         UFD interlock.  This will fix some obscure bugs in LOGIN that
         have been around for a long time.

521      Fix handling of /CORE.

[End of LGN57.DOC]

[LGN55 is appended as an integral part of LGN57.DOC]
LGN55.DOC                                                      Page 13

LOGIN.DOC -- Changes from V54 to V55
June 1974


This major release of LOGIN supports a large number of  new  features.
These include:

     - Use of SCAN and WILD for SFD support
     - Ability to read switches from the LOGIN line
     - Ability to read SWITCH.INI to set user profiles
     - Improved directory logic
     - Support for 5.07 and 6.01 monitors
     - Support for 2541 terminals
     - Support for BATCON V12 and SPRINT V2
     - Improved error messages
     - Support for DATE75
     - Watchdog timeout to prevent LOGIN from hanging
     - Cleanup of internal logic
     - Improved control-  C processing

Parameters which may be set from SWITCH.INI or the users command  line

     - Core limit (for use by BATCON V12)
     - Dskful error or pause
     - Default path
     - Library
     - Time limit (for use by BATCON V12)
     - Station number
     - User name
     - NEW or SYS
     - Private notice file
     - Virtual memory parameters
     - WATCH and SPOOL

LOGIN version 55 runs on all supported monitors.  It has  been  tested
on  5.06 and 6.01/5.07.  It fully supports the DATE-75 project.  LOGIN
version 55 fully supersedes all previous versions.

LOGIN version 55 is documented in the system command manual.   Related
documentation  can  be found in the DOC files for WILD version 6, SCAN
version 6, and REACT version 30.
LGN55.DOC                                                      Page 14

1.1  Function of LOGIN

LOGIN is used to verify a users right to  access  the  system.   LOGIN
does password and name checking as required.  LOGIN logs the user into
the system by creating directories, writing an accounting record,  and
setting  user  parameters  as  directed  by  the  accounting files and
switches on the LOGIN line and in  SWITCH.INI.   LOGIN  also  verifies
that an Attach command is valid.






See .CTL file.


Edits prior to edit 74 were never recorded and are  lost  to  history.
The major change was the addition of SCAN and WILD.  All edits from 74
to 314 are listed below:


 74  Turn off the level c switch (LEVCSW) 

 75  Make symbols match C.MAC.  Use C.MAC with LOGIN.  

 76  Change AC names so that there is only 1  name  for  a  given  AC.
     Make  the names and usage agree with SCAN and the cusp standards.

          OLD  NEW
          A    T1
          B    T2
          C    T3
          D    T4

 77  Make AC5=P1 be preserved.  

100  Change CALC to P2 

101  Get rid of T,E.  AC 5 is now P1.  
LGN55.DOC                                                      Page 15

102  Make CH=14.  Rename AC 10 c.  CH  is  the  character  output  and
     manipulation  AC.  C is the character input AC.  C is set by SCAN
     and never modified by LOGIN.  

103  Call .PSCAN to  do  partial  scanning.   Calling  .TSCAN  is  not

104  Have ATTACH check its arguments prior to doing  the  ATTACH  UUO.
     This will filter out bugs.  

105  Use standard date format (as returned by .GTNOW) to  compute  the
     day of the week.  Idea:  add a routine (.WKDAY) to SCAN to return
     the day of the week in T1.  WED.=0 

106  Add a watchdog timeout to TTY input routine.  If there is no  TTY
     activity  in  2  min.   The  user  is given a helpful message and
     logged off.  

107  Add global routine .TNEWL to satisfy extern in WILD.  For LOGIN's
     simple needs this routine is just a POPJ 

110  Add the message "invalid PATH specification".  This is induced by
     supplying a file name or extension on the PATH.  

111  Add "invalid format  for  project-programmer  number".   This  is
     induced by any one of a long list of syntax errors.  

112  Add the /QUOTA switch to force quota to be recomputed.  

113  Make sure P2 is preserved.  

114  If the UFD interlock is busy for more than 10 seconds  and  there
     are  no other users under this PPN, LOGIN will assume a swap read
     error took place and clear and reset the UFD interlock.  

115  AC BP was removed since it did not contain a global byte  pointer
     and it confused the logic flow.  

116  Remove the UFD buffer since the UFD is never read.  

117  Do not SCAN all users S.L.'s if OTHUSR says there  are  no  other
     users under this PPN.  

120  Create SFD's as needed to set up the correct default PATH.  

121  Do not recomp if only the error bit is set since  it  slows  down
     LOGIN which users do not like.  

122  ILL.  MEM.  REF.  in FASTLG code.  Diagnosis:  indexing  a  HISEG
     address  by  a  HISEG  address.   Cure:   remove  HRR T1,PDACC at

123  SFD's are not created correctly.  All SFD's are in the UFD rather
     than nested.  Diagnosis:  missing MOVEM.  Cure:  add it.  
LGN55.DOC                                                      Page 16

124  Call .PSCAN after the command is decoded but before  the  PPN  is
     stripped  off.   Note:  this will allow switches on the line with
     the   prompt.  

125  Handle control-c on input as soon as possible.  

126  Setting up default paths still does not work correctly  for  WILD
     card  programmer numbers.  Diagnosis:  default is not known until
     after all UFD's are created.  Cure:  add another test.  

127  LOKALL never finds file errors.  Diagnosis:  extended  LOOKUP  is
     not extended far enough.  Cure:  get data up to .RBSTS 

130  The /WATCH switch uses different names the the monitor set  watch
     command.  Cure:  make LOGIN agree with the monitor.  

131  LOGIN with no arguments gives an error message.  Cure:  check for
     end of line.  

132  Implement SWITCH.INI in LOGIN.  

133  Add an example of how to patch you monitor to debug LOGIN 

134  Add 2 switches to LOGIN.  They are watch and spool.  E.g.  


     These switches are "ored" with those specified by the  accounting

135  Improve the message for KSYS up to:  timesharing is over 

136  If LOGIN is loaded with DDT do not clear core  when  done.   Also
     transfer to DDT instead of doing a LOGOUT UUO.  

137  More conversion to C.MAC.  Use TXNN, MOVX etc.  

140  Get MFDPPN,etc from GETTAB 

141  Allow /HELP 

142  Misc bug fixes 

143  LOGIN did not clear args for RUN UUO.  Some edit left junk in the
     core arg.  Change to clear core arg.  

144  Convert all messages to conform to message standard 

145  Fix bug in WILD card PPN  logic.   FASTLG  code  read  the  wrong

146  Fix bug in file error logic 

147  Cleanup listing 
LGN55.DOC                                                      Page 17

150  Compensate for some bugs in SCAN.  These the bugs are related  to
     the use of .PSCAN and end of line conditions.  

151  Wrong time was typed because an AC was getting destroied.  

152  Improve recomp messages 

153  Give fact files standard SYS protection 

154  Make LOGIN over a PTY from a detached job behave like LOGIN  from
     a remote terminal.  

155  Make LOGIN over a PTY have privileges of last job before a  [1,2]
     job in CTLJOB sequence 

156  Don't turn echoing on for HDX lines 

157  Prevent security breach in ATTACH 

160  Log ATTACH failures - same code as LOGIN failures 

161  Move time to LOGIN check to before password check 

162  Remove level-c code from the listing.  

163  Removed by edit 313 

164  Correct a bug related to lower case passwords 

165  Correct TTYGET so that it only waits 2 min.  As advertised.  

166  Change message from "recomputing  disk  quotas"  to  "recomputing
     disk usage".  

167  Add /CORE switch to set user core limit 

170  Add /LOCATE switch to set user station number 

171  Add /NEW /SYS /SCAN to set PATH specification.  

172  Add /DSKFUL and /DSKPRI to do those set UUO's 

173  Add /PHYSICAL:N to set current physical limit and /VIRTUAL:N 

175  Remove definitions of JBTSTS bits and use JOBSTS UUO to read JLOG
     and JACCT.  

176  Implement /RUN:FILESPEC.  this will run the selected  program  if
     and only if there is not program specified in ACCT.SYS.  

177  Implement /NOTE:FILESPEC.  this switch will  print  the  selected
     file  using the NOTICE.TXT logic.  This is useful if one wants to
     print a project notice kept in a library area.  The filespec  may
     contain wildcards.  
LGN55.DOC                                                      Page 18

200  Improve "timesharing is over" message to be in  upper  and  lower
     case  and  begin with lgttio.  Also, change severity of error (to
     BATCON) from fatal to stop scheduling.  

201  Fix a bug in /QUOTA logic.  With this  fixlogin  will  clear  any
     error  bits  in  UFD  which  reflect the status of deleted files.
     I.e.  The makes "lgnfee xxxx file errors exist" go away.  

202  Rewrite NOTICE.TXT printer to be smaller and  faster.   Also  add
     argument to subroutine to alow a general filespec to 

203  Add /LIB:[PPN].  this sets up a LIB:  area 

204  Add /NOLIB, /NONEW, /NOSCAN, /NOSPOOL, /NOWATCH to do the obvious

205  Add /STR and /NOSTR to type STR.TXT on  all  file  structures  on
     which the user has a UFD 

206  Use correct bits in setting /LIB and /SYS.  

207  If the user types "log p/pn /SWITCH:FILE"  SCAN  returns  with  a
     PATH spec of all zeros.  Zero is not a disk and LOGIN gets upset.
     This is fixed by changing zero to SIXBIT dsk.  

210  Change max for /QUOTA from zero to  one.   This  will  keep  SCAN

211  Fix up call to .LKWLD so all files get found.  This requires WILD
     edit 143 (version 6).  

212  Fix LGNBPN to have a CRLF 

213  Make SNOOZE time dependent on ACCT.SYS file length 

214  /TIME:N sets system CORMAX to N words instead of setting per user
     time limit.  Fix:  HLRI to HRLI 

215  If SETUUO for watch bits  ever  failed  error  message  would  be
     garbage.  Fix:  load correct AC 

216  Fix up PATH.  UUO's so that only correct operation takes place.  

217  Fix /DSKPRI switch.  

220  Clean up error messages 

221  Prevent NOTICE.TXT from printing while running OPSER 

222  SWITCH.INI does not get looked at by SCAN.  Diagnosis:   call  to
     .ISCAN  remembers  PPN so chgppn UUO has no effect.  Cure:  store
     new PPN in .MYPPN so SCAN will see it.  
LGN55.DOC                                                      Page 19

223  SWITCH.INI does not get looked at by SCAN.  Diagnosis:   at  time
     of call to .OSCAN job's search list is null, so LOOKUP gets error
     code 24.  Cure:  set a temporary search list to be  the  list  of
     all mounted structures.  

224  Allow version 3 of ACCT.SYS to be processed.  The only difference
     between  version 2 and version 3 isword 6 in a version 2 ACCT.SYS
     entry contains junk while word 6 in a version 3 entry contains:  

          Bits 0-8 maximum physical page limit 
          Bits 9-17 maximum virtual page limit 
          Bits 18-26 IPCF RCV quota 
          Bits 27-35 IPCF XMT quota 

225  Fix remaining bugs in SWITCH.INI processing 

226  Fix 221 

227  Replace calls to SIXMSG with calls  to  .TSIXN.   Straighten  out
     messed up AC useage related to UFD enter failures.  

230  Speed up .TNEWL so that it does not do any TRMOP.  uuos 

231  Fix up message for STRUUO failure related to inserting  str  into
     your search list 

232  Turn on /OKNONE for all files to be typed out.   This  will  keep
     LOGIN from complaining about a missing NOTICE.TXT 

233  Since every call to STUFCL has a JFCL after it  the  skip  return
     seems non-useful.  Therefor, change STUFCL to always return .POPJ

234  Convert LOGIN to use C.MAC and SCNMAC as universal files.  

235  Remove LEVDSW, LEVCSW and CDSW 

236  Inset DATE75 conditional to decide if date is in the new  or  old
     format.  If DATE75 is non-zero date is in new format.  

237  Straighten out use of flags in left half  of  F.   the  following
     flags  go  away:   FL.TYO,  L.FRE1, L.SIN, L.FRE2, FL.LVD, FL.ERR
     FL.RCQ.  The following flags now have thier ouwn bits and are not
     shared with other bits:  FL.ERR,L.PEND 

240  Remove code which can never be executed.  

241  If the user logges in with a slash and says /STR and has  already
     seen  STR.TXT  he does not see STR.TXT again.  Since this feature
     is designed to tell the user what packs are  mounted  this  is  a
     bug.  Fix:  always print STR.TXT 

242  Type out filename, extension, PATH etc.  For files typed  by  the
     /NOTE switch.  
LGN55.DOC                                                      Page 20

243  Fix misplaced POPJ so that LOGIN 0/0 does not win.  Also fix  bad
     test so we do not log format errors in FACT.SYS 

244  Prevent  WILD  from  giving  protection   failure   messages   on
     NOTICE.TXT STR.TXT etc.  

245  Support set watch version and set watch mta from ACCT.SYS 

246  Fix SNOOZE to check for a 60 second max.  Sleep time 

247  Move some symbols to C.MAC so they need not be defined here.  

250  Clean up the listing 

251  Define some macros to generate error messages.  These are :

          STOP  --  very fatal error have BATCON stop
          FATAL --  fatal to this user
          WARN  --  semi-fatal for this user
          INFO  --  message in []

     This will help use do /VERBOSITY in a future edit.

252  Convert /WATCH and /SPOOL to use the OBV ("or" bit value) feature
     in SCAN.  

253  Fix /DSKPRI to return correctly 

254  Call .CLRBF on all errors 

255  Reorder the code so that similar functions are close together 

256  Break up LOGIN into several seperate modules:

          LOGIN  -- universal parameter file 
          LGNINI -- startup module LGNSCN -- command scanner 
          LGNACT -- accounting module 
          LGNDSK -- directory builder 
          LGNSET -- module to do set UUO's for user switches 
          LGNIO  -- random I/O subroutines 
          LGNERR -- error message typers 
          LGNEND -- exit sequence 
          LGNLOW -- low segment 

     The modules still live in one file for convience.  The reason for
     the  changes is to allow parts of LOGIN to be used in the rewrite
     of the mount system.  

257  Change SETSTS at FLUSHX to a reset which will work just as  well.

260  Fix a bug introduced by sorting the code.  

261  Change LGNCUX to LGNNSL which seems more mnemonic 

262  Make sure charge number gets set on every LOGIN 
LGN55.DOC                                                      Page 21

263  Implement /GUIDELINE to set physical guideline 

264  Implement /LIMIT to be the opposite of  /GUIDELINE.   note:   one
     can say /NOGUIDELINE or /GUIDELINE:0 or /LIMIT:0 or /NOLIMIT etc.

265  Rework the control-c logic as follows:   if  control-c  is  typed
     prior  to LOGIN and no critical action is in progress and no disk
     writes have been done, LOGIN types KJOB and exits.  If a critical
     action  (building  HISEG  index)  is  in progress LOGIN will exit
     a.s.a.p.  If LOGIN is recomping or has created a  UFD  it  forces
     the  user to LOGIN then exits.  After the user is logged in LOGIN
     will abort on the first control-c.  

266  Require a value to be typed  on  /CORE,  /DSKPRI,  /LIB,  /LOCATE

267  Pick up the verbosity in .FLVRB and include in  set  UUO  to  set
     watch arguments.  

270  Fix some misc problems 

271  If both logged-in  and  logged-out  quota  are  infinite  do  not
     recompute  disk  useage.   [infinite  =  377777,,777777(8)] note:
     /QUOTA will still force a recomp 

272  Move NEWACT to HISEG if FASTLG is non-zero.   That  way  we  will
     remember that we have the new ACCT.SYS.  

273  Do not attempt to put single access file structures into the fake
     search list set up for .OSCAN.  

274  Improve the routine that  reads  the  password  for  half-duplex,
     local copy, and 2741 terminals.  

275  Invent .CLEOF and call it whenever .CLRBF is called.   This  will
     cause LOGIN to give a prompt at the correct places.  

276  Change the /STR  switch  to  print  ALL:STR.TXT[1,4]  instead  of

277  Move some more code to LGNSCN 

300  Fix SCAN to work better.  While most of the edits are in SCAN  we
     have to change some of the calls.  This does that.  

301  Make UFD LOOKUP failure give correct error core 

302  Set mppl and mvpl to be 1  greater  than  the  number  stored  in
     ACCT.SYS  if that number is non-zero.  This lets us have 512p max
     at the cost of not allowing 1p.  

303  Support LOGNUM 

304  If BATCON gets confused and sends an illegal command string do no
     allow a retry.  
LGN55.DOC                                                      Page 22

305  Removed by 306 

306  Remove edit 305 

307  Rework the retry logic slightly to not sleep unless user is  very
     fast.  This will slow down PTY jobs without affecting real users.

310  Clear out some flags on retry so user always gets the right  PPN.

311  Fix up the /WATCH switch to set the right bits 

312  Improve the mask printer for 2741 terminals 

313  Add the /NAME switch for BATCON V12 and SPRINT  V2.   /NAME  will
     work as follows:  

     If name in ACCT.SYS equals 0 then begin 
     If /NAME given use it else 
     Ask for name and use result end 
     If name in ACCT.SYS = 0 then begin 
     If /NAME given begin 
     If name required must match ACCT.SYS entry end 
     Use the name 
     If no /NAME switch then begin 
     If name required ask for name and match ACCT.SYS 
     If name not required use name from ACCT.SYS 

     The net effect is to allow user to specify his name  on  the  job
     card  and get it stored correctly in the job tables.  If the user
     does not need his name checked he can specify any name he  wants.
     To  defeat this for installations which want to force the name in
     ACCT.SYS to be used, change the namesw routine in LGNSCN to be  a
     POPJ.  That will make the /NAME switch a nop.  

314  Fix ILL.  MEM.  REF.  in local copy code.  

315  Clean up lowseg so no low file.  

[End of LGN55.DOC]