;-*-MIDAS-*- subttl PWFILE -- Define format of the password file ;PRINT VERSION NUMBER .TYO6 .IFNM1 .TYO 40 .TYO6 .IFNM2 PRINTX/ INCLUDED IN THIS ASSEMBLY. / pwfile=:pwpage*2000 ; Where we put it pwinit==:pwpage*2000 ;time of system invocation for locks feature pwdone=:pwpage*2000+1 ;time of system invocation for locks feature pwlock=:pwpage*2000+2 ;lock. If locked, database is closed for ;writing. pwunkl=:pwpage*200+3 ;must be pwlock+1 ... this gets unlink inst. pwlkid=:pwpage*2000+4 ;UIND of job doing the locking pwtime=:pwpage*2000+5 ;time of last update pwuhak=:pwpage*2000+11 ;UNAME of last person to update, other than ;INIT pwjhak=:pwpage*2000+12 ;JNAME of last person to update, other than ;an INIT. pwaccc=:pwpage*2000+13 ;# of times database has been accessed pwordc==:6 ; # of override tables pwordt=:pwpage*2000+14 ; Date override tables are in effect ; In halfword disk-date form, 1 date per ; halfword. pwcnt=:pwpage*2000+17 ;# of passwords we have in our database, *10 pwrbfp=:pwpage*2000+20 ;pointer into buffer pfgrp=:pwpage*2000+21 ; Default user group ddtty0=:pwpage*2000+22 ; 0-43 TTY #'s to get DDT directly. ddtty1=:pwpage*2000+23 ; 44-107 TTY #'s to get DDT directly. dltty0=:pwpage*2000+24 ; 0-43 TTY #'s to not let randoms use dltty1=:pwpage*2000+25 ; 44-107 TTY #'s to not let randoms use pwsptr=:pwpage*2000+26 ; AOBJN ptr to free area in PWSTR area. atoapl=:pwpage*2000+27 ; -1 ==> Allow applications pwgdil=:pwpage*2000+30 ; Dialup restriction for each group, a 1 ; bit n from the right marks that group as ; priveleged. This bit is overridden ; by the %PFDIL bit in the individual's flag ; word, which says the individual is ; priveleged to use the dialups pwsgcp=:pwpage*2000+31 ; -1 iff incomplete GC performed. ; If incomplete GC has been performed, ; it must be done before adding a string. pwholp=:pwpage*2000+32 ; -1 ==> Today is a holiday. ; Turn this on to ignore time restrictions. pwrbfl==:200 ;length of buffer pwrbuf=:pwpage*2000+100 ;password data entry history buffer pwgrct=:20 ; # of possible groups pwgrdm=:pwpage*2000+300 ; 1 entry per group dm$wds=:360600,,0 ; 1.1-1.6 When restriction starts, weekday ; # of half-hours after midnight ; 77 = no restriction dm$sts=:300600,,0 ; 1.7-2.3 When restriction starts, Saturday dm$sns=:220600,,0 ; 2.4-2.9 When restriction starts, Sunday dm$wde=:140600,,0 ; 3.1-3.6 When restriction ends, weekday dm$ste=:060600,,0 ; 3.7-4.3 When restriction ends, Saturday dm$sne=:000600,,0 ; 4.4-4.9 When restriction ends, Sunday pwgors=:pwpage*2000+320 ; This table contains the override start ; times for each of the 20 groups. Each ; word is divided into six 6-bit bytes, ; one for each override date, and contains ; the start time in 1/2 hour past 0000 units pwgore=:pwpage*2000+340 ; Same, override restriction end times. pwgnam=:pwpage*2000+360 ; SIXBIT name of group pwstbg==:pwpage*2000+1000 ; Start of string-space AOBJN ptrs ; From here to PWSTBG are ptrs into the ; database... timmsg=:pwpage*2000+1000 ; Message for each group for logging in ; during the wrong time. dilmsg=:pwpage*2000+1020 ; Message for each group for using dialups ovrmsg=:pwpage*2000+1040 ; 20 x 6 table of messages for each group ; on each override date pwadmn=:pwpage*2000+1200 ; AOBJN ptr (into string space) of people ; who have created/modified accounts lucktb=:pwpage*2000+1201 ; Table of lucky sites that don't get PWORD losers=:pwpage*2000+1202 ; Table of sites we need protection from phone=:pwpage*2000+1203 ; cnt,,offset string phone number for help naplmg=:pwpage*2000+1204 ; Message to print why no applications nocmnd=:pwpage*2000+1205 ; Commands to disable pwstln==:205 ; # of strings to update pwstpg==:1 ; Page # of string space pwstr=:*2000 ; String Space. This is divided into thre ; consing areas, NEW, OLD, and NEXT ; When NEW is filled, all pointers into ; OLD are copied into NEXT space, which ; then becomes the NEW space. The old NEW ; space, not suprisingly, becomes the OLD ; space. This is done to avoid half-move ; strings, to guarantee consistancy at all ; times. Strings are pointed to by AOBJN ; ptrs, relative to PWSTR. The AOBJN ptrs ; are examined and updated only with the ; database locked, and are updated only ; after any necessary copying is done. ; Each consing area is 2 pgs long. pstrln==:4000 ; Length of a string space pistr0==:0 pwstr0==:*2000 ; String Space 0 pistr1==:pistr0+pstrln pwstr1=:*2000+pstrln ; String Space 1 pistr2==:10000 pwstr2=:*2000+2*pstrln ; String Space 2 pdpage==:7 ; Page # of UNAME data in file pwdata=:pwpage*2000+16000 pwname=:pwpage*2000+16000 ;location of first UNAME entry pwpass=:pwpage*2000+16001 ;location of first password entry pwflag=:pwpage*2000+16002 ;location of first flag entry %pf==:1,,525252 ; bit typeout mask %pfnew==:400000 ; This account has never logged in %pfdil==:200000 ; is permitted to use dialups. %pfday==:100000 ; can use it in the daytime. %pfbad==:040000 ; Means that this name shouldn't be able to ; log in from loser sites. %pfmsg==:020000 ; Means that he has seen the REFUSE or OFF ; message pwinfo=:pwpage*2000+16003 ; Various miscellaneous info pi$==:777400,,170677 pi$crt==:321200,,0 ; 3.9-4.9 Index into creator table for ; who created this account pi$mod==:201200,,0 ; 2.8-3.8 who last modified this account pi$grp==:140400,,0 ; 2.4-2.7 access-control group pi$sta==:100400,,0 ; 1.9-2.3 state of this account ps%==:400000,,0 ; typeout mask ps%new==:0 ; Account is nonexistant ps%apl==:1 ; Account is applied for ps%hld==:2 ; Account is being held ps%off==:3 ; Account is turned off ps%rfs==:4 ; Account is refused ps%ok==:5 ; Account is OK ps%sys==:6 ; Account is a system account ps%del==:7 ; Account is being deleted ; (should never actually be in file) pi$nul==:001000,,0 ; 1.1-1.8 MBZ pwdate=:pwpage*2000+16004 ;,, pd$crt==:222200,,0 pd$log==:002200,,0 pwmod=:pwpage*2000+16005 ;,,0 pm$mod=:222200,,0 pwmore=:pwpage*2000+16007 ;this slot reserved for debugging, etc. pwleng==:10 ;entries are 8 long