*| Password File Editor 1.03 **| (C) 1988 S.R.Lawrence, SJ Research. #*| v1.03 1992 J.G.Harston (37:N$="15oct92":J$="$.%PASSWORDS":J0$=J$:*fx4,1 P@%=3:l%=:D\C x *FX 200,0 g%12,G 80,d%80:M$=0(A%)+0(X%)+0(Y%)+0(P%):O$=0(F%)+0(G%)+0(H%):d0%=M%:A%=0:H 20,J 256:I%=0&FF:J!I%=0::Q=400:H$(3):H$(0)="Off":H$(1)="Load":H$(2)="Run":H$(3)="Exec":G$=11," "):$d%="":K=0:I=11:L=24:M=13:m%=:O:v%Q:Q @P%-v%>Q"code too long": h)Q%0:k%=-Q%-1300:k%<128"No room": a%k%,O 17 j"Password file Editor ";N$':"Maximum number of users=";k%64':X%=:>X%+150:R:$O=2:@:I$="":l%= :J$=J0$:m%B & *fx4 1 0 *fx 15 1 :X%=:X%="*"B NX%=&8A_%<=M%C XX%=&8B_%>1D bX%=X%&5F:X%=&41S v X%=&44T  X%=&46U X%=&4Cload X%=&51I$="Edit abandoned" X%=&53V:I$="":@ X%=&58X%=MW I$<>"":26,12:I$:*fx4 E: (E:M$="SJ Research Menu"*FX 200,1   LM$="SJ Research Menu"X(g%):M%=d0%:"..returning to menu";:o=(200):O$ * *FX 4 4: \26:=170,24)(39);:0,24)"Abandon (Y/N) ";:n%=&5F:n%="Y"n%="N":(n%);:n%="Y"0,24)(20);:0,24)"Abandoned";:E p=17l%@:TRB z=17(l%):tdA  G0,24)(39);0,23);::" at line ";;" Press any key";::L\ l%@:\R‹:|d  ^F(A%,e0%,f0%,g0%,h0%):X%,Y%:?d%=e0%:d%!1=f0%:d%!5=g0%:d%!9=h0%:X%=d%:Y%=X%256:&FFD1: =ݤ7:A%,X%,Y%:$d%=J$:A%=&40:X%=d%:Y%=X%256:=(&FFCE)&FF B2ݤ0(h%):!g%=h%:=(g%?3)+(g%?2)+(g%?1)+(?g%) jSX(h%):A%=3("SJ R",h%):X%=3("esea",h%):Y%=3("rch ",h%):P%=3("Menu",h%):: 4ݤ3(Q$,h%):w%=14:h%?(4-w%)=(Q$,w%,1))::=!h% 95:G("Add Delete Find Load Save eXpand Quit *",0): C:(-2)_%=M%:@: (-1)Y: H(L-2):_%=_%+1: (1H(A%):0,A%):B%=_%+(L-2-I)+1:B%<=M%3(B%) P 0,I);: nD:(-2)_%=1:@: (-1)Z: *0,K);:11:B%=_%-(I-K)-1:B%>=13(B%) _%=_%-1:0,I);: Y:_%=_%+22:_%>M%_%=M% @: Z:_%=_%-22:_%<1_%=1 ,@: J?S:R=::E%+64>k%0(0):"User table full";:I%=:R=:DHH rh0(0):"New user:";:2(10):5(G)=0($G,1)<="9"$G,1)>="0")0(0):"Invalid user name!";:I%=:LH $G=""LH i4:e%=0::e%=e%+1:`%=@(e%):G$=1(`%):$G<=G$e%=M%:$G=G$0(0):"Already got that user!";:I%=:LH $G>G$e%=M%+1:`%=@(e%) (e%-_%)>11_%=e%:@:DXG &:e%>_%C : e%<_%D D e%=_% XYM%=M%+1:I%=a%+E%-4`%-4-4:I%!64=!I%::E%=E%+64:e%<=((a%!&1E)&FFFF)a%!&1E=a%!&1E+1 UI:11:4:I%=`%`%+604:!I%=0::$`%=$G:`%?10=13:`%?&15=1:6(0,64):0,I);:3(e%) H$G=""R:5: pT:_%>M% I:H(L-(I+2)):4:0,I);:`%=@(_%):7((`%!&16)&FFFFFF):7((`%!&19)&FFFFFF):M%=M%-1:I%=@(_%)a%+E%4:!I%=I%!64::E%=E%-64:6(0,-64):(a%!&1E&FFFF)=_%a%?&1E=0:a%?&1F=0 %(a%!&1E&FFFF)>_%a%!&1E=a%!&1E-1  1U:0(0):"Find user:";:2(10):$G=""7:5: B9_%=0::_%=_%+1:`%=@(_%):G$=1(`%):G$>=$G_%=M%:@: r@:26,12:G("User id Boot option Privilege",1):5:4:0,0);:I%=_%-(I-K)_%+(L-2-I):0L-20,+1); :0,I);: 2R:I%:_:I%=0J: ZI%<>1"Ugh!": d(E%>k%"Password file is too long": nE%<128J: xTI%=0:W%=7:F(3,W%,a%,E%,0):#W%:I%=0:I%=I%+1:?@(I%)=&FF:M%=I%-1:_%=1:M%>0`  J`:I%=1M%:o%=a%!(I%*&40+28)&FFFF:o%>0J?(o%8)=(J?(o%8))2^(o%8) : 6KJ:I%:I%=0604:a%!I%=0::I%=641244:a%!I%=-1::M%=0:_%=1:E%=128: @)load:0(0):"Load file: "J$:R:@: dV::a%!&1E&FFFF''"The default user is "1(@(a%!&1E&FFFF))'''"There is no default user"' _%,I,K,L BI%=0::I%=I%+1:x%=(?(@(I%)+&15)2)=2:x%y%=5(@(I%)+10)y%= I%>M%((x%(?(@(I%)+&20)1))y%):I%>M%"WARNINGThere are no system privileged"'"WARNINGusers with access to account 0"'"WARNINGand a valid password"'' ="Save to disc "2" (Y/N) ?";:笤6:''"Save as: "J$:TpL 2<>$O''"WARNINGYou are about to save the"'"WARNINGpassword file from "$O'"WARNINGto "2'':"Save (Y/N) ?";:笤6@: &I$="Password File saved" 0K!a%=1:p%=2:_%=1:`%=@(_%):b%=&41&5B2::(?`%&5F)=b%:a%?p%=_%&FF:a%?(p%+1)=_%&100:p%=p%+2::I%=32604:a%!I%=0::W%=(J$):F(1,W%,a%,E%,0):#W%: pݤ5(z%):f%,u%:f%=-1::f%=f%+1:u%="""#$%&*.;:@[\]^{}|~,",((z%?f%)&7F)):(z%?f%&7F)=13f%=9u%>0:u%>0= \= p B:*fx4 ::\R m%26,12 m%=::"*"$G:$G<>""a($G) $G="":L\ @:m%=: ;3(_%):c%:c%=@(_%):1(c%);11,);:c%?&14>3c%?&14=0 B9c%?&14;" ";H$(c%?&14);20,);:(c%?&15)2"System "; V#_%=(a%!&1E&FFFF)"*DEFAULT*"; ` tW:_%>M% `%=@(_%):26,12:"A(ccount) S(ystem priv) D(efault user)"'"P(assword) U(RD) L(IB) 0..3 Boot option"'"G(roup Ac) E(nable) N(ext pacc) (C)reate"; U"6-AuxLock 7-No Lib 8-Saves 9-PW lock":1:K::8(5,2):X%=8():&2F":": "Credit account with: "B$:B$<>"":"CDir "+A$:"Credit "+~A%+" "+B$+" "+A$,2,A$,".")-2):"Account "+A$+" "+~A%+" ("+~A%+")"  '':1: Y1:I%:8(7,7)::3(_%):`%?&15220,)"System Privilege"20,)" " -G$=1(`%+10):"PW :";:G$="""None";G$; (`%?21120)"Password/Opt locked" T"URD:";:L((`%!&16)&FFFFFF):24);:`%?214"No short SAVEs""Short SAVEs OK" 6Q"LIB:";:L((`%!&19)&FFFFFF):24);:`%?218"Fixed *ENABLE""*ENABLE reqd" ^!`%?2116"Non (SJ) Library"; h&24);:`%?2132"Run Only User" |?"Personal Account : ";:I%=`%!28&FFFF:I%=0"None";;~I%; %24);:`%?2164"AuxAcc Locked"; 7(a%!&1E&FFFF)=_%15);"This is the DEFAULT user";  TK:B%=`%:28,0,24,39,14,12:"Group Accounts: ";:M(-1,255,1):M(&C0,&7FF,&40): Ol:0(5):"Next free personal account above? ";:2(3):I%=0:I%=4:I%=0I%=1 b3_0%=0::~I%;:13:((J?(I%8))2^(I%8))=0_0%= EI%=I%+1:_0%I%=&800:0(5):"Next free account = ";~I%-1;::: g:0(5):"New Personal Account (0 for none): ";:2(3):I%=0:I%=4:O%=`%!28&FFFF:J?(O%8)=(J?(O%8))(255-2^(O%8)):`%?28=I%:`%?29=I%256:I%<>0J?(I%8)=(J?(I%8))2^(I%8) H1: f@j:9("New Accounts :",5):I%=0:`0%=:G?0="-"`0%=:I%=I%+1 :L%=4:a0%(q%)dhR b0%c0%=L%:dTR c0%=4:a0%(q%)lh A%=L%c0%:p(A%,`%,`0%): b%=Mq%:q%"Bad syntax" K: Hh:(a%!&1E&FFFF)=_%a%?&1E=0:a%?&1F=0a%?&1E=_%&FF:a%?&1F=_%&100 .1: Lb:`%?&14=X%-&30:1: ~)k:9("Library :",5):N(`%+&19):1: ?m:A%,B%:0(5):"New password :";:2(10):q(G,`%+10):1:  f:Z%=1:DFT 2 n:Z%=2 F`%?&15=`%?&15Z%:1: ne:Z%=4:LF i:Z%=8:LF d:Z%=16:LF c:Z%=64:LF 5o:9("User Root Directory :",5):N(`%+&16):1: J#L(c%):笤9(c%);"Duff PTR";: ^'c%=0;"(normal)";;$(a%+c%),19); h |ݤ9(c%):c%=0= c%<64+M%*64+64= c%=64+M%*64+64= c%>E%-2= =a%?(c%-1)=13 7(r%):i%,I%:r%=0 Hi%=($(a%+r%))+1:I%=a%+r%a%+E%4:!I%=I%!i%::E%=E%-i%:6(r%,-i%): D&N(j%):E%+$G+1>k%:"No room": X27((!j%)&FFFFFF):$G="" ?j%=0:j%?1=0:j%?2=0: l@$(a%+E%)=$G:?j%=E%:j%?1=E%&100:j%?2=E%&10000:E%=E%+$G+1: 0ݤ6:X%:X%=&5F:X%=&4EX%=&59:X%:=X%=&59  'G(K$,s%):0(s%):K$;:4:0,I);: Rݤ@(_%)=a%+64*_% f0(s%):28,0,s%,39,s%,12: 4:28,0,24,39,2: I:28,0,24,39,I+2: 8(K,W):28,0,K+W-1,39,K: A:b%=G?I%:I%=I%+1: %ݤ8(b%):&60&20:I%=I%-1:a0%=b%=M:A:b0%=(b%="]"b%=">"b%="-"A):q%=(b%=","b%=32b0%b%=M):t%=:&2F"."= A:b%="."=I%=I%-1:= )9(K$,X):8(X,2)::K$;:2(80):12: <+s:("SAVE editpass! "+~+" "+~P): Ztݤ2:H!1=d%:X%=H:Y%=X%256:A%=5:&FFD1:i%=?d%:L$="":f%=1::i0%=d%?f%:L$=L$+(d%?f%):f%=f%+1:f%=i%+1d%?f%=32:=L$ 6(!&74,!&78):!&70=a%:N: YM(A%,F%,O%):C%=255:!&74=B%:::A%=A%+O%:!&70=A%:(H%C%)(A%>F%):L%=A%:A%>F%tdZ h >32 rI" ";~L%;::A%=A%+O%:!&70=A%:A%>F%(H%C%)=0:L%<>A%-1"]";~(A%-1);  A%>F%: p(!&70,!&74,!&78):Y: ݤ1(!&70):Z:=$g% q(!&74,!&70):_: :r(!&74):`: lQ:S=0:a=02+S2+S:P%=v%:[OPTa:.N:CLC:LDA&70:ADC#64:STA&70:BCCb:INC&71:.b:LDY#0:LDA(&70),Y:CMP#&FF:BEQc:LDY#&17:LDA&75:CMP(&70),Y:BCCd:BNET:DEY:LDA&74:CMP(&70),Y:BCST:.d:LDY#&16:CLC:LDA&78:ADC(&70),Y:STA(&70),Y:INY:LDA&79:ADC(&70),Y:STA(&70),Y:.T .LDY#&1A:LDA&75:CMP(&70),Y:BCCe:BNEN:DEY:LDA&74:CMP(&70),Y:BCSN:.e:LDY#&19:CLC:LDA&78:ADC(&70),Y:STA(&70),Y:INY:LDA&79:ADC(&70),Y:STA(&70),Y:JMPN:.H%:JSRU:(&74),Y:.c:RTS:.U:LDA&71:BEQf:SEC:SBC#1:ASL&70:ROLA:ASL&70:ROLA:JMPg:.Y:JSRU:PHA:A(&74),Y STA&76:PLA:#&FF:A&78:&76:STA(&74),Y:RTS:.f:LDA&70:PHA:RORA:RORA:RORA:#&1F:A#&20:TAY:PLA:#7:.h:TAX:INX:LDA#0:SEC:.i ROLA:DEX:BNEi:RTS:.g:CMP#20:BCCj:LDY#30:SBC#20:BCSh:.j:TAY:LDA#&80:RTS:.Z:LDY#0:.k:LDA(&70),Y:#&7F:STAg%,Y:INY:CPY#10:BNEk !LDA#13:STAg%+10:RTS:._:LDY#0:.l:LDA(&70),Y:#&80:STA(&70),Y:LDA(&74),Y:A(&70),Y:STA(&70),Y:INY:CPY#10:BNEl:RTS:.`:LDY#0:.m LDA(&74),Y:CMP#M:BEQn:CMP#&61:BMIV:CMP#&7B:BPLV:#&5F:STA(&74),Y:.V INY:BNEm:.n RTS:]:: #F>_:$G=J$:!H=G:A%=5:X%=H:Y%=X%256:I%=&FFDD255:E%=H!10: #,a($d%):X%,Y%:X%=d%:Y%=X%256:&FFF7: #3O:X%=H:Y%=X%256:A%=&13:?H=5:H?1=255:&FFF1: $"S2(i%):A%,X%,Y%:A%=0:X%=H:Y%=X%256:!H=G:H?2=i%:H?3=32:H?4=127:&FFF1:r(G):