mirror of
https://github.com/A2osX/A2osX.git
synced 2024-06-02 13:41:30 +00:00
Kernel 0.94
This commit is contained in:
parent
04e5bc3e77
commit
4ca0e321ad
Binary file not shown.
|
@ -52,8 +52,8 @@ L.MSG.USAGE .DA MSG.USAGE
|
||||||
L.MSG.ROOTPWD1 .DA MSG.ROOTPWD1
|
L.MSG.ROOTPWD1 .DA MSG.ROOTPWD1
|
||||||
L.MSG.ROOTPWD2 .DA MSG.ROOTPWD2
|
L.MSG.ROOTPWD2 .DA MSG.ROOTPWD2
|
||||||
L.MSG.MISMATCH .DA MSG.MISMATCH
|
L.MSG.MISMATCH .DA MSG.MISMATCH
|
||||||
L.MSG.BS .DA MSG.BS
|
|
||||||
L.MSG.CRLF .DA MSG.CRLF
|
L.MSG.CRLF .DA MSG.CRLF
|
||||||
|
L.MSG.BS .DA MSG.BS
|
||||||
J.CS.RUN.CheckArg
|
J.CS.RUN.CheckArg
|
||||||
.DA CS.RUN.CheckArg.C
|
.DA CS.RUN.CheckArg.C
|
||||||
.DA CS.RUN.CheckArg.D
|
.DA CS.RUN.CheckArg.D
|
||||||
|
@ -392,12 +392,12 @@ MSG.USAGE .AS "Usage : USERADD username\r\n"
|
||||||
.AS " -c : Comment (GECOS)\r\n"
|
.AS " -c : Comment (GECOS)\r\n"
|
||||||
.AS " -d : Home Directory\r\n"
|
.AS " -d : Home Directory\r\n"
|
||||||
.AS " -p : Password\r\n"
|
.AS " -p : Password\r\n"
|
||||||
.AS " -s : Shell\r\n"
|
.AS " -s : Shell"
|
||||||
MSG.CRLF .AZ "\r\n"
|
MSG.CRLF .AZ "\r\n"
|
||||||
|
MSG.BS .DA #C.BS,#C.SPACE,#C.BS,#0
|
||||||
MSG.ROOTPWD1 .AZ "\r\nPlease enter ROOT password : "
|
MSG.ROOTPWD1 .AZ "\r\nPlease enter ROOT password : "
|
||||||
MSG.ROOTPWD2 .AZ "\r\nPlease retype ROOT password : "
|
MSG.ROOTPWD2 .AZ "\r\nPlease retype ROOT password : "
|
||||||
MSG.MISMATCH .AZ "\r\nPasswords mismatch...\r\n"
|
MSG.MISMATCH .AZ "\r\nPasswords mismatch...\r\n"
|
||||||
MSG.BS .DA #C.BS,#C.SPACE,#C.BS,#0
|
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
PW.ROOT .AS "root"
|
PW.ROOT .AS "root"
|
||||||
.BS 17-4
|
.BS 17-4
|
||||||
|
@ -427,8 +427,7 @@ PW.DEFAULT .BS 17 NAME
|
||||||
.OR 0
|
.OR 0
|
||||||
DS.START
|
DS.START
|
||||||
PW .BS S.PW
|
PW .BS S.PW
|
||||||
DS.END
|
DS.END .ED
|
||||||
.ED
|
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
MAN
|
MAN
|
||||||
SAVE usr/src/bin/useradd.s
|
SAVE usr/src/bin/useradd.s
|
||||||
|
|
|
@ -16,12 +16,6 @@ PASS.MAX .EQ 64
|
||||||
.DUMMY
|
.DUMMY
|
||||||
.OR ZPBIN
|
.OR ZPBIN
|
||||||
ZS.START
|
ZS.START
|
||||||
ZPPWPtr .BS 2
|
|
||||||
ZPhPW .BS 1
|
|
||||||
ZPhStr .BS 1
|
|
||||||
ZPbStrSecret .BS 1
|
|
||||||
ZPStrLen .BS 1
|
|
||||||
ZPStrMax .BS 1
|
|
||||||
ArgIndex .BS 1
|
ArgIndex .BS 1
|
||||||
ArgUsername .BS 1
|
ArgUsername .BS 1
|
||||||
ZPStrPtr .BS 2
|
ZPStrPtr .BS 2
|
||||||
|
@ -46,10 +40,11 @@ CS.START cld
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
.1 .DA CS.INIT
|
.1 .DA CS.INIT
|
||||||
.DA CS.RUN
|
.DA CS.RUN
|
||||||
.DA CS.DOEVENT
|
.DA CS.DOEVENT
|
||||||
.DA CS.QUIT
|
.DA CS.QUIT
|
||||||
L.MSG.USAGE .DA MSG.USAGE
|
L.MSG.USAGE .DA MSG.USAGE
|
||||||
L.MSG.CRLF .DA MSG.CRLF
|
L.MSG.CRLF .DA MSG.CRLF
|
||||||
|
L.MSG.BS .DA MSG.BS
|
||||||
J.CS.RUN.CheckArg
|
J.CS.RUN.CheckArg
|
||||||
.DA CS.RUN.CheckArg.C
|
.DA CS.RUN.CheckArg.C
|
||||||
.DA CS.RUN.CheckArg.D
|
.DA CS.RUN.CheckArg.D
|
||||||
|
@ -66,33 +61,17 @@ CS.INIT clc
|
||||||
* Called until exit with CS
|
* Called until exit with CS
|
||||||
* if RUN exits with CC, RN entered again
|
* if RUN exits with CC, RN entered again
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.RUN >LDYAI S.PW
|
CS.RUN ldy #S.PS.ARGC
|
||||||
>SYSCALL GetMem
|
lda (pPS),y
|
||||||
bcs .99
|
beq .9
|
||||||
|
|
||||||
>STYA ZPPWPtr
|
|
||||||
stx ZPhPW
|
|
||||||
|
|
||||||
>LDYAI 256
|
|
||||||
>SYSCALL GetMem
|
|
||||||
bcs .99
|
|
||||||
|
|
||||||
>STYA ZPStrPtr
|
|
||||||
stx ZPhStr
|
|
||||||
|
|
||||||
lda #0
|
|
||||||
>PUSHA
|
|
||||||
>PUSHW ZPPWPtr
|
|
||||||
>SYSCALL GetPWUID
|
|
||||||
bcs .9
|
|
||||||
|
|
||||||
jsr CS.RUN.CheckArg
|
jsr CS.RUN.CheckArg
|
||||||
bcs .9
|
bcs .99
|
||||||
|
|
||||||
>PUSHW pData
|
>PUSHW pData
|
||||||
>SYSCALL putpw
|
>SYSCALL putpw
|
||||||
bcs .99
|
bcs .99
|
||||||
|
|
||||||
lda #0
|
lda #0
|
||||||
sec
|
sec
|
||||||
rts
|
rts
|
||||||
|
@ -104,49 +83,6 @@ CS.RUN >LDYAI S.PW
|
||||||
sec
|
sec
|
||||||
.99 rts
|
.99 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.RUN.GetStr stz ZPStrLen
|
|
||||||
|
|
||||||
.1 >SYSCALL getchar
|
|
||||||
bcs .9
|
|
||||||
cmp #C.SPACE
|
|
||||||
bcc .2
|
|
||||||
ldy ZPStrLen
|
|
||||||
cpy ZPStrMax
|
|
||||||
beq .1
|
|
||||||
sta (ZPStrPtr),y
|
|
||||||
iny
|
|
||||||
sty ZPStrLen
|
|
||||||
bit ZPbStrSecret
|
|
||||||
bmi .1
|
|
||||||
>SYSCALL putchar
|
|
||||||
bra .1
|
|
||||||
|
|
||||||
.2 cmp #3 Ctrl-C
|
|
||||||
beq .9
|
|
||||||
|
|
||||||
cmp #C.CR
|
|
||||||
beq .8
|
|
||||||
cmp #C.BS
|
|
||||||
bne .1
|
|
||||||
ldy ZPStrLen
|
|
||||||
beq .1
|
|
||||||
dec ZPStrLen
|
|
||||||
bit ZPbStrSecret
|
|
||||||
bmi .1
|
|
||||||
|
|
||||||
>PUSHW L.MSG.BS
|
|
||||||
>PUSHBI 0
|
|
||||||
>SYSCALL PrintF
|
|
||||||
bra .1
|
|
||||||
.8 ldy ZPStrLen
|
|
||||||
lda #0
|
|
||||||
sta (ZPStrPtr),y
|
|
||||||
|
|
||||||
>PUSHW L.MSG.CRLF
|
|
||||||
>PUSHBI 0
|
|
||||||
>SYSCALL PrintF
|
|
||||||
.9 rts
|
|
||||||
*--------------------------------------
|
|
||||||
CS.RUN.CheckArg inc ArgIndex
|
CS.RUN.CheckArg inc ArgIndex
|
||||||
lda ArgIndex
|
lda ArgIndex
|
||||||
>SYSCALL ArgV
|
>SYSCALL ArgV
|
||||||
|
@ -156,12 +92,15 @@ CS.RUN.CheckArg inc ArgIndex
|
||||||
lda (ZPStrPtr)
|
lda (ZPStrPtr)
|
||||||
cmp #'-'
|
cmp #'-'
|
||||||
bne .4
|
bne .4
|
||||||
|
|
||||||
|
lda ArgUsername
|
||||||
|
beq CS.RUN.CheckArg.9
|
||||||
|
|
||||||
ldy #1
|
ldy #1
|
||||||
lda (ZPStrPtr),y
|
lda (ZPStrPtr),y
|
||||||
|
|
||||||
ldx #OptionCnt-1
|
ldx #OptionCnt-1
|
||||||
|
|
||||||
.2 cmp OptionList,x
|
.2 cmp OptionList,x
|
||||||
beq .3
|
beq .3
|
||||||
dex
|
dex
|
||||||
|
@ -170,7 +109,7 @@ CS.RUN.CheckArg inc ArgIndex
|
||||||
lda #E.SYN
|
lda #E.SYN
|
||||||
sec
|
sec
|
||||||
rts
|
rts
|
||||||
|
|
||||||
.3 txa
|
.3 txa
|
||||||
and #$fe
|
and #$fe
|
||||||
tax
|
tax
|
||||||
|
@ -178,48 +117,24 @@ CS.RUN.CheckArg inc ArgIndex
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
.4 lda ArgUsername
|
.4 lda ArgUsername
|
||||||
bne CS.RUN.CheckArg.9
|
bne CS.RUN.CheckArg.9
|
||||||
|
|
||||||
lda pData
|
|
||||||
clc
|
|
||||||
adc #S.PW.DIR+11
|
|
||||||
sta ZPTmpPtr
|
|
||||||
|
|
||||||
lda pData+1
|
|
||||||
adc /S.PW.DIR+11
|
|
||||||
sta ZPTmpPtr+1
|
|
||||||
|
|
||||||
ldy #0
|
|
||||||
|
|
||||||
.5 lda (ZPStrPtr),y
|
|
||||||
sta (pData),y
|
|
||||||
sta (ZPTmpPtr),y
|
|
||||||
beq .6
|
|
||||||
|
|
||||||
iny
|
|
||||||
cpy #16
|
|
||||||
bne .5
|
|
||||||
|
|
||||||
bra CS.RUN.CheckArg.9
|
|
||||||
|
|
||||||
.6 lda #'/'
|
|
||||||
sta (ZPTmpPtr),y
|
|
||||||
|
|
||||||
lda ArgIndex
|
lda ArgIndex
|
||||||
sta ArgUsername
|
sta ArgUsername
|
||||||
>SYSCALL ArgV
|
>SYSCALL ArgV
|
||||||
>PUSHYA
|
>PUSHYA
|
||||||
>PUSHW ZPPWPtr
|
>PUSHW pData
|
||||||
>SYSCALL GetPWName
|
>SYSCALL GetPWName
|
||||||
bcc .9
|
bcs .9
|
||||||
|
|
||||||
bra CS.RUN.CheckArg
|
bra CS.RUN.CheckArg
|
||||||
|
|
||||||
.8 lda ArgUsername
|
.8 lda ArgUsername
|
||||||
beq CS.RUN.CheckArg.9
|
beq CS.RUN.CheckArg.9
|
||||||
|
|
||||||
clc
|
clc
|
||||||
rts
|
rts
|
||||||
|
|
||||||
.9 lda #E.DUPUSR
|
.9 lda #E.IUSR
|
||||||
sec
|
sec
|
||||||
rts
|
rts
|
||||||
CS.RUN.CheckArg.9
|
CS.RUN.CheckArg.9
|
||||||
|
@ -258,11 +173,11 @@ CS.RUN.CheckArg.S
|
||||||
lda ArgIndex
|
lda ArgIndex
|
||||||
>SYSCALL ArgV
|
>SYSCALL ArgV
|
||||||
bcs CS.RUN.CheckArg.9
|
bcs CS.RUN.CheckArg.9
|
||||||
|
|
||||||
ldx #S.PW.SHELL
|
ldx #S.PW.SHELL
|
||||||
CS.RUN.CheckArg.Next
|
CS.RUN.CheckArg.Next
|
||||||
>STYA ZPStrPtr
|
>STYA ZPStrPtr
|
||||||
|
|
||||||
* clc
|
* clc
|
||||||
txa
|
txa
|
||||||
adc pData
|
adc pData
|
||||||
|
@ -270,7 +185,7 @@ CS.RUN.CheckArg.Next
|
||||||
lda pData+1
|
lda pData+1
|
||||||
adc #0
|
adc #0
|
||||||
sta ZPTmpPtr+1
|
sta ZPTmpPtr+1
|
||||||
|
|
||||||
ldy #$ff
|
ldy #$ff
|
||||||
|
|
||||||
.1 iny
|
.1 iny
|
||||||
|
@ -283,7 +198,7 @@ CS.RUN.CheckArg.Next
|
||||||
|
|
||||||
lda #0
|
lda #0
|
||||||
sta (ZPTmpPtr),y
|
sta (ZPTmpPtr),y
|
||||||
|
|
||||||
.8 jmp CS.RUN.CheckArg
|
.8 jmp CS.RUN.CheckArg
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.RUN.MkDir >PUSHEA.G S.PW.DIR
|
CS.RUN.MkDir >PUSHEA.G S.PW.DIR
|
||||||
|
@ -301,13 +216,7 @@ CS.DOEVENT sec
|
||||||
* Called once, when RUN exited with CS
|
* Called once, when RUN exited with CS
|
||||||
* Put code for unloading LIB here
|
* Put code for unloading LIB here
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.QUIT lda ZPhStr
|
CS.QUIT clc
|
||||||
beq .1
|
|
||||||
>SYSCALL FreeMem
|
|
||||||
.1 lda ZPhPW
|
|
||||||
beq .2
|
|
||||||
>SYSCALL FreeMem
|
|
||||||
.2 clc
|
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.END
|
CS.END
|
||||||
|
@ -321,15 +230,15 @@ MSG.USAGE .AS "Usage : USERMOD username\r\n"
|
||||||
.AS " -c : Comment (GECOS)\r\n"
|
.AS " -c : Comment (GECOS)\r\n"
|
||||||
.AS " -d : Home Directory\r\n"
|
.AS " -d : Home Directory\r\n"
|
||||||
.AS " -p : Password\r\n"
|
.AS " -p : Password\r\n"
|
||||||
.AS " -s : Shell\r\n"
|
.AS " -s : Shell"
|
||||||
MSG.CRLF .AZ "\r\n"
|
MSG.CRLF .AZ "\r\n"
|
||||||
|
MSG.BS .DA #C.BS,#C.SPACE,#C.BS,#0
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
.DUMMY
|
.DUMMY
|
||||||
.OR 0
|
.OR 0
|
||||||
DS.START
|
DS.START
|
||||||
PW .BS S.PW
|
PW .BS S.PW
|
||||||
DS.END
|
DS.END .ED
|
||||||
.ED
|
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
MAN
|
MAN
|
||||||
SAVE usr/src/bin/usermod.s
|
SAVE usr/src/bin/usermod.s
|
||||||
|
|
|
@ -137,14 +137,16 @@ PWDX.PutPW.1 jsr K.GetmemPtr
|
||||||
jsr SHARED.TXTPTR.GetY
|
jsr SHARED.TXTPTR.GetY
|
||||||
bne .12
|
bne .12
|
||||||
|
|
||||||
|
jsr PWD.FindRecord
|
||||||
|
bcs .99
|
||||||
jmp PWD.DeleteRecord
|
jmp PWD.DeleteRecord
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
.12 jsr PWD.FindRecord
|
.12 jsr PWD.FindRecord
|
||||||
bcs .11
|
bcs .11
|
||||||
|
|
||||||
lda #E.DUPUSR user already exits.
|
jsr PWD.DeleteRecord
|
||||||
sec
|
bcs .99
|
||||||
rts
|
bra .13
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
.11 jsr PWD.GetUID new user, get UID
|
.11 jsr PWD.GetUID new user, get UID
|
||||||
bcs .99
|
bcs .99
|
||||||
|
@ -154,7 +156,7 @@ PWDX.PutPW.1 jsr K.GetmemPtr
|
||||||
sta (TXTPTR),y
|
sta (TXTPTR),y
|
||||||
sta SETWRITEAUX
|
sta SETWRITEAUX
|
||||||
|
|
||||||
jsr PWD.GetRecordLen
|
.13 jsr PWD.GetRecordLen
|
||||||
|
|
||||||
clc
|
clc
|
||||||
adc PWD.UsrDBSize
|
adc PWD.UsrDBSize
|
||||||
|
@ -388,9 +390,6 @@ PWD.GetUID lda PWD.hUsrDB
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
PWD.DeleteRecord
|
PWD.DeleteRecord
|
||||||
jsr PWD.FindRecord
|
|
||||||
bcs .9
|
|
||||||
|
|
||||||
.1 iny
|
.1 iny
|
||||||
lda (ZPPtr3),y
|
lda (ZPPtr3),y
|
||||||
cmp #C.CR
|
cmp #C.CR
|
||||||
|
|
Loading…
Reference in New Issue
Block a user