diff --git a/.Floppies/A2OSX.BUILD.po b/.Floppies/A2OSX.BUILD.po index 37f81a07..eaa525c5 100644 Binary files a/.Floppies/A2OSX.BUILD.po and b/.Floppies/A2OSX.BUILD.po differ diff --git a/BIN/SH.S.CMD.txt b/BIN/SH.S.CMD.txt index 12191802..05de964e 100644 --- a/BIN/SH.S.CMD.txt +++ b/BIN/SH.S.CMD.txt @@ -199,6 +199,7 @@ CMD.SET.1 jsr CORE.ArgV.Next beq CMD.SET.GET + cmp #'=' bne .99 @@ -211,6 +212,7 @@ CMD.SET.1 cmp #'`' beq CMD.SET.EXEC + jsr EXP.GET bcc CMD.SET.YA @@ -236,6 +238,7 @@ CMD.SET.GET >PUSHW ZPVarNamePtr >LDYA ZPCLBuf >SYSCALL PutS + rts .8 clc diff --git a/BIN/USERADD.S.txt b/BIN/USERADD.S.txt index c9a3d9ae..f997f5cd 100644 --- a/BIN/USERADD.S.txt +++ b/BIN/USERADD.S.txt @@ -52,7 +52,6 @@ L.MSG.USAGE .DA MSG.USAGE L.MSG.ROOTPWD1 .DA MSG.ROOTPWD1 L.MSG.ROOTPWD2 .DA MSG.ROOTPWD2 L.MSG.MISMATCH .DA MSG.MISMATCH -L.MSG.DUP .DA MSG.DUP L.MSG.BS .DA MSG.BS L.MSG.CRLF .DA MSG.CRLF J.CS.RUN.CheckArg @@ -106,6 +105,7 @@ CS.RUN >LDYAI S.PW jsr CS.RUN.MkDir * bcs .99 + >PUSHW pData >SYSCALL putpw bcs .99 @@ -222,6 +222,7 @@ CS.RUN.CheckArg inc ArgIndex lda ArgIndex >SYSCALL ArgV bcs .8 + >STYA ZPStrPtr lda (ZPStrPtr) cmp #'-' @@ -245,7 +246,7 @@ CS.RUN.CheckArg inc ArgIndex and #$fe tax jmp (J.CS.RUN.CheckArg,x) - +*-------------------------------------- .4 lda ArgUsername bne CS.RUN.CheckArg.9 @@ -274,11 +275,11 @@ CS.RUN.CheckArg inc ArgIndex .6 lda #'/' sta (ZPTmpPtr),y - >PUSHW ZPPWPtr lda ArgIndex sta ArgUsername >SYSCALL ArgV - + >PUSHYA + >PUSHW ZPPWPtr >SYSCALL GetPWName bcc .9 @@ -289,9 +290,9 @@ CS.RUN.CheckArg inc ArgIndex clc rts -.9 >PUSHW L.MSG.DUP - >PUSHBI 0 - >SYSCALL PrintF +.9 lda #E.DUPUSR + sec + rts CS.RUN.CheckArg.9 lda #E.SYN sec @@ -328,9 +329,11 @@ CS.RUN.CheckArg.S lda ArgIndex >SYSCALL ArgV bcs CS.RUN.CheckArg.9 + ldx #S.PW.SHELL CS.RUN.CheckArg.Next >STYA ZPStrPtr + * clc txa adc pData @@ -338,15 +341,20 @@ CS.RUN.CheckArg.Next lda pData+1 adc #0 sta ZPTmpPtr+1 + ldy #$ff + .1 iny lda (ZPStrPtr),y sta (ZPTmpPtr),y beq .8 + cpy #64 bne .1 + lda #0 sta (ZPTmpPtr),y + .8 jmp CS.RUN.CheckArg *-------------------------------------- CS.RUN.MkDir >PUSHEA.G S.PW.DIR @@ -389,7 +397,6 @@ MSG.CRLF .AZ "\r\n" MSG.ROOTPWD1 .AZ "\r\nPlease enter ROOT password : " MSG.ROOTPWD2 .AZ "\r\nPlease retype ROOT password : " MSG.MISMATCH .AZ "\r\nPasswords mismatch...\r\n" -MSG.DUP .AZ "\r\nDuplicate username...\r\n" MSG.BS .DA #C.BS,#C.SPACE,#C.BS,#0 *-------------------------------------- PW.ROOT .AS "root" diff --git a/SYS/KERNEL.S.ENVX.txt b/SYS/KERNEL.S.ENVX.txt index 6e9de9b8..f75a1d1a 100644 --- a/SYS/KERNEL.S.ENVX.txt +++ b/SYS/KERNEL.S.ENVX.txt @@ -180,7 +180,7 @@ ENVX.GetEnv sta ENVX.hEnv clc rts -.9 >LDYAI 0 +.9 lda #E.NOKEY * sec .99 rts diff --git a/SYS/KERNEL.S.PWDX.txt b/SYS/KERNEL.S.PWDX.txt index d6bd5eff..72c1ec37 100644 --- a/SYS/KERNEL.S.PWDX.txt +++ b/SYS/KERNEL.S.PWDX.txt @@ -133,26 +133,47 @@ PWDX.PutPW lda PWD.hUsrDB sta CLRWRITEAUX sta (TXTPTR),y sta SETWRITEAUX - >DEBUG + jsr PWD.GetRecordLen clc adc PWD.UsrDBSize sta PWD.UsrDBSize - sta MEM.NewSize + tay lda #0 adc PWD.UsrDBSize+1 sta PWD.UsrDBSize+1 - sta MEM.NewSize+1 - lda PWD.hUsrDB - jsr K.Realloc.I + jsr K.Getmem bcs .99 >STYA ZPPtr3 - stx PWD.hUsrDB + lda PWD.hUsrDB + jsr K.GetMemPtr + >STYA ZPPtr4 + + ldy #0 + +.3 lda (ZPPtr4),y + sta (ZPPtr3),y + beq .4 + + iny + bne .3 + inc ZPPtr4 + inc ZPPtr3 + bra .3 + +.4 lda PWD.hUsrDB + stx PWD.hUsrDB + jsr K.Freemem + + lda PWD.hUsrDB + jsr K.GetMemPtr + >STYA ZPPtr3 + jsr PWD.AppendRecord clc