mirror of
https://github.com/A2osX/A2osX.git
synced 2024-08-15 04:29:35 +00:00
This commit is contained in:
parent
77d18f41df
commit
f414fe39ee
143
SBIN/LOGIN.S.txt
143
SBIN/LOGIN.S.txt
@ -16,7 +16,9 @@ NEW
|
|||||||
ZS.START
|
ZS.START
|
||||||
ZPUsrID .BS 1
|
ZPUsrID .BS 1
|
||||||
|
|
||||||
ZPShellPtr .BS 2
|
ZPhBuf .BS 1
|
||||||
|
ZPBufPtr .BS 2
|
||||||
|
|
||||||
ZPRetryCnt .BS 1
|
ZPRetryCnt .BS 1
|
||||||
ZPbValidUser .BS 1
|
ZPbValidUser .BS 1
|
||||||
|
|
||||||
@ -27,6 +29,9 @@ ZPbEsc .BS 1
|
|||||||
ZPGetLineLen .BS 1
|
ZPGetLineLen .BS 1
|
||||||
ZPGetLineMax .BS 1
|
ZPGetLineMax .BS 1
|
||||||
|
|
||||||
|
ZPhPW .BS 1
|
||||||
|
ZPPWPtr .BS 2
|
||||||
|
|
||||||
ZPhSID .BS 1
|
ZPhSID .BS 1
|
||||||
|
|
||||||
ZPhFile .BS 1
|
ZPhFile .BS 1
|
||||||
@ -70,7 +75,7 @@ L.SHELL .DA SHELL
|
|||||||
CS.INIT clc
|
CS.INIT clc
|
||||||
CS.INIT.RTS rts
|
CS.INIT.RTS rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.RUN >LDYAI 256
|
CS.RUN >LDYAI 32
|
||||||
>SYSCALL getmem
|
>SYSCALL getmem
|
||||||
bcs CS.INIT.RTS
|
bcs CS.INIT.RTS
|
||||||
|
|
||||||
@ -80,8 +85,15 @@ CS.RUN >LDYAI 256
|
|||||||
>LDYA L.ETCISSUE
|
>LDYA L.ETCISSUE
|
||||||
jsr CS.RUN.DUMPFILE
|
jsr CS.RUN.DUMPFILE
|
||||||
|
|
||||||
>PUSHW pData PW
|
>LDYAI S.PW
|
||||||
lda #0
|
>SYSCALL getmem
|
||||||
|
bcs CS.INIT.RTS
|
||||||
|
|
||||||
|
>STYA ZPPWPtr
|
||||||
|
stx ZPhPW
|
||||||
|
|
||||||
|
>PUSHWI 0 Dry Run, no output
|
||||||
|
* lda #0 ROOT user
|
||||||
>SYSCALL GetPWUID
|
>SYSCALL GetPWUID
|
||||||
bcc CS.RUN.AUTH
|
bcc CS.RUN.AUTH
|
||||||
|
|
||||||
@ -106,7 +118,7 @@ CS.RUN.AUTH >LDYA L.LIBCRYPT
|
|||||||
jsr CS.RUN.GetLine
|
jsr CS.RUN.GetLine
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
>PUSHW pData
|
>PUSHW ZPPWPtr
|
||||||
>LDYA ZPGetLinePtr
|
>LDYA ZPGetLinePtr
|
||||||
>SYSCALL GetPWName
|
>SYSCALL GetPWName
|
||||||
ror ZPbValidUser
|
ror ZPbValidUser
|
||||||
@ -116,7 +128,7 @@ CS.RUN.AUTH >LDYA L.LIBCRYPT
|
|||||||
>SYSCALL printf
|
>SYSCALL printf
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
lda #128
|
lda #32
|
||||||
sec
|
sec
|
||||||
jsr CS.RUN.GetLine
|
jsr CS.RUN.GetLine
|
||||||
bcs .9
|
bcs .9
|
||||||
@ -135,10 +147,12 @@ CS.RUN.AUTH >LDYA L.LIBCRYPT
|
|||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
dec ZPRetryCnt
|
dec ZPRetryCnt
|
||||||
bne .1
|
beq .99
|
||||||
|
|
||||||
lda #E.IUSR
|
jmp .1
|
||||||
* sec
|
|
||||||
|
.99 lda #E.IUSR
|
||||||
|
sec
|
||||||
.9 rts
|
.9 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.RUN.CHECKPWD rol ZPbValidUser
|
CS.RUN.CHECKPWD rol ZPbValidUser
|
||||||
@ -148,7 +162,14 @@ CS.RUN.CHECKPWD rol ZPbValidUser
|
|||||||
>PUSHW ZPGetlinePtr
|
>PUSHW ZPGetlinePtr
|
||||||
>LIBCALL hLIBCRYPT,LIBCRYPT.MD5
|
>LIBCALL hLIBCRYPT,LIBCRYPT.MD5
|
||||||
|
|
||||||
>PUSHEA.G PW+S.PW.PASSWD
|
lda ZPPWPtr
|
||||||
|
clc
|
||||||
|
adc #S.PW.PASSWD
|
||||||
|
tay
|
||||||
|
lda ZPPWPtr+1
|
||||||
|
adc /S.PW.PASSWD
|
||||||
|
>PUSHYA
|
||||||
|
|
||||||
>LDYA ZPGetlinePtr
|
>LDYA ZPGetlinePtr
|
||||||
>SYSCALL strcmp
|
>SYSCALL strcmp
|
||||||
|
|
||||||
@ -196,6 +217,8 @@ CS.RUN.EXEC ldx #1
|
|||||||
>LDYA L.ETCMOTD
|
>LDYA L.ETCMOTD
|
||||||
jsr CS.RUN.DumpFile
|
jsr CS.RUN.DumpFile
|
||||||
|
|
||||||
|
jsr CS.CLEANUP
|
||||||
|
|
||||||
>PUSHBI S.PS.F.HOLD
|
>PUSHBI S.PS.F.HOLD
|
||||||
>LDYA L.SHELL
|
>LDYA L.SHELL
|
||||||
>SYSCALL ExecL
|
>SYSCALL ExecL
|
||||||
@ -208,7 +231,7 @@ CS.RUN.EXEC ldx #1
|
|||||||
stz S.Table.hSession-1,x
|
stz S.Table.hSession-1,x
|
||||||
stz S.Table.hFILE-1,x
|
stz S.Table.hFILE-1,x
|
||||||
>SYSCALL freemem
|
>SYSCALL freemem
|
||||||
|
sec
|
||||||
.9 rts
|
.9 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.RUN.SetRootSession
|
CS.RUN.SetRootSession
|
||||||
@ -236,37 +259,25 @@ CS.RUN.SetUserSession
|
|||||||
|
|
||||||
ldy #S.PW.NAME-1
|
ldy #S.PW.NAME-1
|
||||||
|
|
||||||
.1 inx
|
jsr CS.RUN.AddStrLen NAME len
|
||||||
iny
|
|
||||||
lda (pData),y
|
|
||||||
bne .1 NAME len
|
|
||||||
|
|
||||||
inx
|
inx
|
||||||
|
|
||||||
ldy #S.PW.GECOS-1
|
ldy #S.PW.GECOS-1
|
||||||
|
|
||||||
.2 inx
|
jsr CS.RUN.AddStrLen GECOS len
|
||||||
iny
|
|
||||||
lda (pData),y
|
|
||||||
bne .2 GECOS len
|
|
||||||
|
|
||||||
inx
|
inx
|
||||||
|
|
||||||
ldy #S.PW.DIR-1
|
ldy #S.PW.DIR-1
|
||||||
|
|
||||||
.3 inx
|
jsr CS.RUN.AddStrLen DIR len
|
||||||
iny
|
|
||||||
lda (pData),y
|
|
||||||
bne .3 DIR len
|
|
||||||
|
|
||||||
inx
|
inx
|
||||||
|
|
||||||
ldy #S.PW.SHELL-1
|
ldy #S.PW.SHELL-1
|
||||||
|
|
||||||
.4 inx
|
jsr CS.RUN.AddStrLen SHELL len
|
||||||
iny
|
|
||||||
lda (pData),y
|
|
||||||
bne .4 SHELL len
|
|
||||||
|
|
||||||
txa
|
txa
|
||||||
tay
|
tay
|
||||||
@ -282,14 +293,14 @@ CS.RUN.SetUserSession
|
|||||||
* clc
|
* clc
|
||||||
|
|
||||||
ldy #S.PW.GID
|
ldy #S.PW.GID
|
||||||
lda (pData),y
|
lda (ZPPWPtr),y
|
||||||
tax
|
tax
|
||||||
bne .5
|
bne .5
|
||||||
|
|
||||||
sec
|
sec
|
||||||
|
|
||||||
.5 ldy #S.PW.UID
|
.5 ldy #S.PW.UID
|
||||||
lda (pData),y
|
lda (ZPPWPtr),y
|
||||||
bne .6
|
bne .6
|
||||||
|
|
||||||
sec
|
sec
|
||||||
@ -297,7 +308,7 @@ CS.RUN.SetUserSession
|
|||||||
.6 lda #0
|
.6 lda #0
|
||||||
ror
|
ror
|
||||||
jsr CS.RUN.AddByte PRIV
|
jsr CS.RUN.AddByte PRIV
|
||||||
lda (pData),y
|
lda (ZPPWPtr),y
|
||||||
jsr CS.RUN.AddByte UID
|
jsr CS.RUN.AddByte UID
|
||||||
txa
|
txa
|
||||||
jsr CS.RUN.AddByte GID
|
jsr CS.RUN.AddByte GID
|
||||||
@ -320,7 +331,14 @@ CS.RUN.SetUserSession
|
|||||||
clc
|
clc
|
||||||
.9 rts
|
.9 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.RUN.AddStr lda (pData),y
|
CS.RUN.AddStrLen
|
||||||
|
.1 inx
|
||||||
|
iny
|
||||||
|
lda (ZPPWPtr),y
|
||||||
|
bne .1
|
||||||
|
rts
|
||||||
|
*--------------------------------------
|
||||||
|
CS.RUN.AddStr lda (ZPPWPtr),y
|
||||||
jsr CS.RUN.AddByte
|
jsr CS.RUN.AddByte
|
||||||
iny
|
iny
|
||||||
tax
|
tax
|
||||||
@ -414,69 +432,63 @@ CS.RUN.DumpFile pha
|
|||||||
|
|
||||||
stx ZPhFile
|
stx ZPhFile
|
||||||
|
|
||||||
|
>LDYAI 256
|
||||||
|
>SYSCALL getmem
|
||||||
|
bcs .99
|
||||||
|
|
||||||
|
>STYA ZPBufPtr
|
||||||
|
stx ZPhBuf
|
||||||
|
|
||||||
.1 >PUSHWI 256
|
.1 >PUSHWI 256
|
||||||
>PUSHW ZPGetLinePtr
|
>PUSHW ZPBufPtr
|
||||||
lda ZPhFile
|
lda ZPhFile
|
||||||
|
|
||||||
>SYSCALL fgets
|
>SYSCALL fgets
|
||||||
bcs .8
|
bcs .7
|
||||||
|
|
||||||
>LDYA ZPGetLinePtr
|
>LDYA ZPBufPtr
|
||||||
>SYSCALL ExpandStr
|
>SYSCALL ExpandStr
|
||||||
bcc .2
|
bcc .2
|
||||||
|
|
||||||
php
|
.99 php
|
||||||
pha
|
pha
|
||||||
jsr .8
|
jsr .8
|
||||||
pla
|
pla
|
||||||
plp
|
plp
|
||||||
rts
|
.9 rts
|
||||||
|
|
||||||
.2 phx
|
.2 phx
|
||||||
>STYA ZPStrPtr
|
>SYSCALL puts
|
||||||
|
|
||||||
ldy #$ff
|
|
||||||
|
|
||||||
.3 iny
|
|
||||||
lda (ZPStrPtr),y
|
|
||||||
bne .3
|
|
||||||
|
|
||||||
lda #C.CR
|
|
||||||
sta (ZPStrPtr),y
|
|
||||||
iny
|
|
||||||
lda #C.LF
|
|
||||||
sta (ZPStrPtr),y
|
|
||||||
iny
|
|
||||||
lda #0
|
|
||||||
sta (ZPStrPtr),y
|
|
||||||
|
|
||||||
>PUSHBI 0
|
|
||||||
>LDYA ZPStrPtr
|
|
||||||
>SYSCALL printf
|
|
||||||
|
|
||||||
pla
|
pla
|
||||||
>SYSCALL freemem
|
>SYSCALL freemem
|
||||||
bra .1
|
bra .1
|
||||||
|
|
||||||
|
.7 lda ZPhBuf
|
||||||
|
>SYSCALL freemem
|
||||||
.8 lda ZPhFile
|
.8 lda ZPhFile
|
||||||
>SYSCALL fclose
|
>SYSCALL fclose
|
||||||
|
|
||||||
.9 rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.DOEVENT
|
CS.DOEVENT
|
||||||
sec
|
sec
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.QUIT lda ZPhGetLine
|
CS.QUIT lda hLIBCRYPT
|
||||||
beq .1
|
beq CS.CLEANUP
|
||||||
|
|
||||||
>SYSCALL freemem
|
|
||||||
|
|
||||||
.1 lda hLIBCRYPT
|
|
||||||
beq .8
|
|
||||||
|
|
||||||
>SYSCALL UnloadLib
|
>SYSCALL UnloadLib
|
||||||
|
|
||||||
|
CS.CLEANUP lda ZPhGetLine
|
||||||
|
beq .1
|
||||||
|
stz ZPhGetLine
|
||||||
|
>SYSCALL freemem
|
||||||
|
|
||||||
|
.1 lda ZPhPW
|
||||||
|
beq .8
|
||||||
|
stz ZPhPW
|
||||||
|
>SYSCALL freemem
|
||||||
|
|
||||||
.8 clc
|
.8 clc
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
@ -507,7 +519,6 @@ SESSION.ROOT.Size .EQ *-SESSION.ROOT
|
|||||||
.DUMMY
|
.DUMMY
|
||||||
.OR 0
|
.OR 0
|
||||||
DS.START
|
DS.START
|
||||||
PW .BS S.PW
|
|
||||||
DS.END
|
DS.END
|
||||||
.ED
|
.ED
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
@ -41,7 +41,13 @@ PWD.GetPWUID lda PWD.hDB
|
|||||||
jsr PWD.NextLine
|
jsr PWD.NextLine
|
||||||
bra .1
|
bra .1
|
||||||
|
|
||||||
.8 jmp PWD.Record2PW
|
.8 lda ZPPtr2+1
|
||||||
|
beq .80 Dry run, no output
|
||||||
|
|
||||||
|
jmp PWD.Record2PW
|
||||||
|
|
||||||
|
.80 clc
|
||||||
|
rts
|
||||||
|
|
||||||
.9 lda #E.IPWDDB
|
.9 lda #E.IPWDDB
|
||||||
sec
|
sec
|
||||||
|
Loading…
Reference in New Issue
Block a user