diff --git a/.Floppies/A2OSX.BUILD.po b/.Floppies/A2OSX.BUILD.po index 7a2ad7e0..3880d514 100644 Binary files a/.Floppies/A2OSX.BUILD.po and b/.Floppies/A2OSX.BUILD.po differ diff --git a/BIN/WHO.S.txt b/BIN/WHO.S.txt index b3bd072e..24ebb96d 100644 --- a/BIN/WHO.S.txt +++ b/BIN/WHO.S.txt @@ -14,7 +14,7 @@ NEW .OR ZPBIN ZS.START USRID .BS 1 -ZPPWPtr .BS 2 +ZPSessionPtr .BS 2 ZS.END .ED *-------------------------------------- @@ -63,20 +63,20 @@ CS.RUN >LDYA L.MSG0 ldx USRID lda S.Table.hSession-1,x >SYSCALL GetMemPtr - >STYA ZPPWPtr + >STYA ZPSessionPtr - lda ZPPWPtr + lda ZPSessionPtr clc adc #S.SESSION.NAME tay - lda ZPPWPtr+1 + lda ZPSessionPtr+1 adc /S.SESSION.NAME >PUSHYA - >PUSHB (ZPPWPtr) + >PUSHB (ZPSessionPtr) ldy #S.SESSION.UID - >PUSHB (ZPPWPtr),y + >PUSHB (ZPSessionPtr),y >PUSHB USRID diff --git a/SBIN/LOGIN.S.txt b/SBIN/LOGIN.S.txt index e16f66d8..fa2a17f2 100644 --- a/SBIN/LOGIN.S.txt +++ b/SBIN/LOGIN.S.txt @@ -275,11 +275,11 @@ CS.RUN.SetUserSession bcs .9 >STYA pSession >STYA ZPStrPtr - + stx ZPhSID * clc - + ldy #S.PW.GID lda (pData),y tax diff --git a/SYS/KERNEL.S.PWDX.txt b/SYS/KERNEL.S.PWDX.txt index 3e080be3..26e08be0 100644 --- a/SYS/KERNEL.S.PWDX.txt +++ b/SYS/KERNEL.S.PWDX.txt @@ -6,8 +6,8 @@ X.PWD jmp (.1-SYS.GetPWUID,x) .DA PWD.GetPWName .DA PWD.PutPW *-------------------------------------- -* ZPPtr1 : UID / pName -* ZPPtr2 : pPW +* ZPPtr1 : UID / pName (Input) +* ZPPtr2 : pPW (Output) * ZPPtr3 : pDB * USERNAME:PASSWORD:UID:GID:GECOS:HOME:SHELL\CR * ....\CR @@ -63,7 +63,7 @@ PWD.GetPWName lda PWD.hDB ldy #0 jsr MEM.TXTPTR.GetY beq .99 - +* >DEBUG .1 lda (ZPPtr3) beq .99 @@ -94,6 +94,9 @@ PWD.GetPWName lda PWD.hDB PWD.GetPWName.RTS rts *-------------------------------------- +* ZPPtr2 : pPW (Input) +* ZPPtr3 : pDB +*-------------------------------------- PWD.PutPW >LDYA ZPPtr2 >STYA TXTPTR @@ -110,7 +113,7 @@ PWD.PutPW >LDYA ZPPtr2 >STYA PWD.DBSize jsr K.getmem - bcs .99 + bcs PWD.GetPWName.RTS >STYA ZPPtr3 >STYA PWD.DBPtr stx PWD.hDB @@ -123,8 +126,13 @@ PWD.PutPW >LDYA ZPPtr2 jsr PWD.DeleteRecord bcc .11 user exits.. - jsr PWD.SetUID new user, setup UID - + jsr PWD.GetUID new user, get UID + bcs .99 + ldy #S.PW.UID + sta CLRWRITEAUX + sta (TXTPTR),y + sta SETWRITEAUX + .11 jsr PWD.GetRecordLen clc @@ -179,11 +187,45 @@ PWD.PutPW >LDYA ZPPtr2 *-------------------------------------- * ZPPtr2 = pPW *-------------------------------------- -PWD.SetUID >LDYA PWD.DBPtr +PWD.GetUID >LDYA PWD.DBPtr >STYA ZPPtr3 + stz .8+1 + +.1 lda (ZPPtr3) + beq .8 End of DB + + ldy #0 + +.2 lda (ZPPtr3),y + iny + cmp #':' + bne .2 skip name + +.3 lda (ZPPtr3),y + iny + cmp #':' + bne .3 skip password + + jsr PWD.GetByte + cmp .8+1 + bcc .4 + + sta .8+1 + +.4 jsr PWD.NextLine + bra .1 + +.8 lda #$ff SELF MODIFIED + inc + beq .9 + clc rts + +.9 lda #E.IUSR + sec + rts *-------------------------------------- PWD.DeleteRecord jsr PWD.FindRecord @@ -355,7 +397,7 @@ PWD.Record2PW sta CLRWRITEAUX clc rts *-------------------------------------- -PWD.GetByte stz .8+1 +PWD.GetByte stz ZPPtr4 .1 lda (ZPPtr3),y iny @@ -365,20 +407,20 @@ PWD.GetByte stz .8+1 and #$f pha - lda .8+1 + lda ZPPtr4 asl asl clc - adc .8+1 + adc ZPPtr4 asl - sta .8+1 + sta ZPPtr4 pla clc - adc .8+1 - sta .8+1 + adc ZPPtr4 + sta ZPPtr4 bra .1 -.8 lda #$ff +.8 lda ZPPtr4 rts *-------------------------------------- PWD.StoreRecord sec