mirror of
https://github.com/A2osX/A2osX.git
synced 2024-07-11 14:29:12 +00:00
Kernel 0.93
This commit is contained in:
parent
2232b123ed
commit
7df7823042
@ -19,11 +19,13 @@ PASS.MAX .EQ 64
|
|||||||
ZS.START
|
ZS.START
|
||||||
ZPPWPtr .BS 2
|
ZPPWPtr .BS 2
|
||||||
ZPhPW .BS 1
|
ZPhPW .BS 1
|
||||||
ZPStrPtr .BS 2
|
|
||||||
ZPhStr .BS 1
|
ZPhStr .BS 1
|
||||||
ZPbStrSecret .BS 1
|
ZPbStrSecret .BS 1
|
||||||
ZPStrLen .BS 1
|
ZPStrLen .BS 1
|
||||||
ZPStrMax .BS 1
|
ZPStrMax .BS 1
|
||||||
|
ArgCount .BS 1
|
||||||
|
ArgUsername .BS 1
|
||||||
|
ZPStrPtr .BS 2
|
||||||
ZS.END .ED
|
ZS.END .ED
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* File Header (16 Bytes)
|
* File Header (16 Bytes)
|
||||||
@ -52,6 +54,7 @@ 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.BS .DA MSG.BS
|
||||||
|
L.MSG.CRLF .DA MSG.CRLF
|
||||||
.DA 0
|
.DA 0
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* Called once at process creation
|
* Called once at process creation
|
||||||
@ -87,23 +90,20 @@ CS.RUN >LDYAI S.PW
|
|||||||
|
|
||||||
jmp CS.RUN.ROOT
|
jmp CS.RUN.ROOT
|
||||||
|
|
||||||
.1
|
.1 jsr CS.RUN.CheckArg
|
||||||
|
bcs .99
|
||||||
|
|
||||||
>PUSHBI 0
|
>PUSHBI 0
|
||||||
>LDYA L.MSG.USAGE
|
>LDYA L.MSG.USAGE
|
||||||
>SYSCALL printf
|
>SYSCALL printf
|
||||||
|
|
||||||
.8 lda #0
|
lda #E.SYN
|
||||||
sec
|
|
||||||
rts
|
|
||||||
|
|
||||||
.9 lda #E.SYN
|
|
||||||
sec
|
sec
|
||||||
.99 rts
|
.99 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.RUN.ROOT ldy #0
|
CS.RUN.ROOT ldy #0
|
||||||
|
|
||||||
.1 lda ROOT.PW,y
|
.1 lda PW.ROOT,y
|
||||||
sta (pData),y PW
|
sta (pData),y PW
|
||||||
iny
|
iny
|
||||||
cpy #S.PW
|
cpy #S.PW
|
||||||
@ -161,7 +161,6 @@ CS.RUN.ROOT ldy #0
|
|||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.RUN.GetStr stz ZPStrLen
|
CS.RUN.GetStr stz ZPStrLen
|
||||||
|
|
||||||
|
|
||||||
.1 >SYSCALL getchar
|
.1 >SYSCALL getchar
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
@ -207,10 +206,59 @@ CS.RUN.GetStr stz ZPStrLen
|
|||||||
lda #0
|
lda #0
|
||||||
sta (ZPStrPtr),y
|
sta (ZPStrPtr),y
|
||||||
|
|
||||||
clc
|
>PUSHBI 0
|
||||||
|
>LDYA L.MSG.CRLF
|
||||||
|
>SYSCALL printf
|
||||||
|
|
||||||
.9 rts
|
.9 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
CS.RUN.CheckArg
|
||||||
|
.1 inc ArgCount
|
||||||
|
lda ArgCount
|
||||||
|
>SYSCALL ArgV
|
||||||
|
bcs .8
|
||||||
|
>STYA ZPStrPtr
|
||||||
|
|
||||||
|
lda (ZPStrPtr)
|
||||||
|
cmp #'-'
|
||||||
|
bne .4
|
||||||
|
|
||||||
|
ldy #1
|
||||||
|
lda (ZPStrPtr),y
|
||||||
|
ldx OptionList
|
||||||
|
|
||||||
|
.2 cmp OptionList,x
|
||||||
|
beq .3
|
||||||
|
dex
|
||||||
|
bne .2
|
||||||
|
|
||||||
|
lda #E.SYN
|
||||||
|
sec
|
||||||
|
rts
|
||||||
|
|
||||||
|
.3 ldy OptionVars-1,x
|
||||||
|
lda #$80
|
||||||
|
sta (pData),y
|
||||||
|
bra .1
|
||||||
|
|
||||||
|
.4 lda ArgUsername
|
||||||
|
bne .9
|
||||||
|
|
||||||
|
ldy #$ff
|
||||||
|
|
||||||
|
.5 iny
|
||||||
|
lda (ZPStrPtr),y
|
||||||
|
sta
|
||||||
|
|
||||||
|
|
||||||
|
lda ArgCount
|
||||||
|
sta ArgUsername
|
||||||
|
bra .1
|
||||||
|
|
||||||
|
.9 lda #E.SYN
|
||||||
|
sec
|
||||||
|
rts
|
||||||
|
*--------------------------------------
|
||||||
* Called if option S.PS.F.EVENT enabled in Header
|
* Called if option S.PS.F.EVENT enabled in Header
|
||||||
* Timer Event : every 10th seconds
|
* Timer Event : every 10th seconds
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
@ -240,6 +288,8 @@ CS.QUIT lda ZPhStr
|
|||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.END
|
CS.END
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
OptionList >PSTR "CDPScdps"
|
||||||
|
*--------------------------------------
|
||||||
* Initialized DATA
|
* Initialized DATA
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
LIBCRYPT .AZ "libcrypt"
|
LIBCRYPT .AZ "libcrypt"
|
||||||
@ -256,7 +306,7 @@ 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
|
MSG.BS .DA #C.BS,#C.SPACE,#C.BS,#0
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
ROOT.PW .AS "ROOT"
|
PW.ROOT .AS "ROOT"
|
||||||
.BS 17-4
|
.BS 17-4
|
||||||
.BS 33 PASSWD
|
.BS 33 PASSWD
|
||||||
.DA #0 UID
|
.DA #0 UID
|
||||||
@ -268,6 +318,16 @@ ROOT.PW .AS "ROOT"
|
|||||||
.AS "${ROOT}BIN/SH"
|
.AS "${ROOT}BIN/SH"
|
||||||
.BS 65-13
|
.BS 65-13
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
PW.DEFAULT .BS 17 NAME
|
||||||
|
.BS 33 PASSWD
|
||||||
|
.DA #0 UID
|
||||||
|
.DA #0 GID
|
||||||
|
.BS 65 GECOS
|
||||||
|
.AS "${ROOT}USR/"
|
||||||
|
.BS 65-11
|
||||||
|
.AS "${ROOT}BIN/SH"
|
||||||
|
.BS 65-13
|
||||||
|
*--------------------------------------
|
||||||
* Per Process DATA segment
|
* Per Process DATA segment
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
.DUMMY
|
.DUMMY
|
||||||
|
@ -50,7 +50,7 @@ CS.RUN >LDYA L.MSG0
|
|||||||
ldx #1
|
ldx #1
|
||||||
stx USRID
|
stx USRID
|
||||||
|
|
||||||
.1 lda S.Table.hPW-1,x
|
.1 lda S.Table.hSession-1,x
|
||||||
beq .7
|
beq .7
|
||||||
|
|
||||||
lda S.Table.hFile-1,x
|
lda S.Table.hFile-1,x
|
||||||
@ -61,7 +61,7 @@ CS.RUN >LDYA L.MSG0
|
|||||||
>PUSHYA
|
>PUSHYA
|
||||||
|
|
||||||
ldx USRID
|
ldx USRID
|
||||||
lda S.Table.hPW-1,x
|
lda S.Table.hSession-1,x
|
||||||
>SYSCALL GetMemPtr
|
>SYSCALL GetMemPtr
|
||||||
>STYA ZPPWPtr
|
>STYA ZPPWPtr
|
||||||
|
|
||||||
|
@ -21,7 +21,7 @@ PS.Table.Stats .EQ $13E0 K.PS.MAX
|
|||||||
OF.Table.hPath .EQ $1400 K.OF.MAX
|
OF.Table.hPath .EQ $1400 K.OF.MAX
|
||||||
OF.Table.hFD .EQ $1420 K.OF.MAX
|
OF.Table.hFD .EQ $1420 K.OF.MAX
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
S.Table.hPW .EQ $1440 K.USR.MAX
|
S.Table.hSession .EQ $1440 K.USR.MAX
|
||||||
S.Table.hFile .EQ $1450 K.USR.MAX
|
S.Table.hFile .EQ $1450 K.USR.MAX
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
A2osX.EndTables .EQ $1460
|
A2osX.EndTables .EQ $1460
|
||||||
|
@ -15,7 +15,6 @@ NEW
|
|||||||
.OR ZPBIN
|
.OR ZPBIN
|
||||||
ZS.START
|
ZS.START
|
||||||
ZPUsrID .BS 1
|
ZPUsrID .BS 1
|
||||||
ZPUsrPtr .BS 2
|
|
||||||
|
|
||||||
ZPShellPtr .BS 2
|
ZPShellPtr .BS 2
|
||||||
ZPRetryCnt .BS 1
|
ZPRetryCnt .BS 1
|
||||||
@ -169,7 +168,7 @@ CS.RUN.NOAUTH >PUSHBI 0
|
|||||||
|
|
||||||
CS.RUN.EXEC ldx #1
|
CS.RUN.EXEC ldx #1
|
||||||
|
|
||||||
.1 lda S.Table.hPW-1,x
|
.1 lda S.Table.hSession-1,x
|
||||||
beq .2
|
beq .2
|
||||||
inx
|
inx
|
||||||
cpx #K.USR.MAX+1
|
cpx #K.USR.MAX+1
|
||||||
@ -185,9 +184,9 @@ CS.RUN.EXEC ldx #1
|
|||||||
ldy #S.PS.hSID
|
ldy #S.PS.hSID
|
||||||
sta (pPS),y
|
sta (pPS),y
|
||||||
|
|
||||||
txa
|
lda ZPhSID
|
||||||
ldx ZPUsrID
|
ldx ZPUsrID
|
||||||
sta S.Table.hPW-1,x
|
sta S.Table.hSession-1,x
|
||||||
|
|
||||||
ldy #S.PS.hStdIn
|
ldy #S.PS.hStdIn
|
||||||
lda (pPS),y
|
lda (pPS),y
|
||||||
@ -204,8 +203,8 @@ CS.RUN.EXEC ldx #1
|
|||||||
>SLEEP
|
>SLEEP
|
||||||
|
|
||||||
ldx ZPUsrID
|
ldx ZPUsrID
|
||||||
lda S.Table.hPW-1,x
|
lda S.Table.hSession-1,x
|
||||||
stz S.Table.hPW-1,x
|
stz S.Table.hSession-1,x
|
||||||
stz S.Table.hFILE-1,x
|
stz S.Table.hFILE-1,x
|
||||||
>SYSCALL freemem
|
>SYSCALL freemem
|
||||||
|
|
||||||
@ -213,7 +212,7 @@ CS.RUN.EXEC ldx #1
|
|||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.RUN.SetRootSession
|
CS.RUN.SetRootSession
|
||||||
>LDYA L.SESSION.ROOT
|
>LDYA L.SESSION.ROOT
|
||||||
>STYA ZPUsrPtr
|
>STYA ZPStrPtr
|
||||||
|
|
||||||
>LDYAI SESSION.ROOT.Size
|
>LDYAI SESSION.ROOT.Size
|
||||||
>SYSCALL getmem
|
>SYSCALL getmem
|
||||||
@ -223,10 +222,10 @@ CS.RUN.SetRootSession
|
|||||||
|
|
||||||
ldy #SESSION.ROOT.Size-1
|
ldy #SESSION.ROOT.Size-1
|
||||||
|
|
||||||
.2 lda (ZPUsrPtr),y
|
.1 lda (ZPStrPtr),y
|
||||||
sta (pSession),y
|
sta (pSession),y
|
||||||
dey
|
dey
|
||||||
bpl .2
|
bpl .1
|
||||||
|
|
||||||
* clc
|
* clc
|
||||||
.9 rts
|
.9 rts
|
||||||
|
@ -395,7 +395,7 @@ CORE.PSSelect ldy #S.PS.ZP+ZPBIN.SIZE-1
|
|||||||
ldy #S.PS.hSID
|
ldy #S.PS.hSID
|
||||||
lda (pPs),y
|
lda (pPs),y
|
||||||
tax
|
tax
|
||||||
lda S.Table.hPW-1,x
|
lda S.Table.hSession-1,x
|
||||||
jsr K.GetmemPtr
|
jsr K.GetmemPtr
|
||||||
>STYA pSession
|
>STYA pSession
|
||||||
|
|
||||||
|
@ -336,7 +336,7 @@ MemMgrInit >LDYAI Mem.MHiMem
|
|||||||
|
|
||||||
ldx #K.USR.MAX*2-1
|
ldx #K.USR.MAX*2-1
|
||||||
|
|
||||||
.6 stz S.Table.hPW,x
|
.6 stz S.Table.hSession,x
|
||||||
dex
|
dex
|
||||||
bpl .6
|
bpl .6
|
||||||
|
|
||||||
@ -1089,7 +1089,7 @@ PwdMgrInit >LDYAI MSG.PWD
|
|||||||
.1 >LDYAI PwdMgr.ROOT.Size
|
.1 >LDYAI PwdMgr.ROOT.Size
|
||||||
jsr K.Getmem
|
jsr K.Getmem
|
||||||
>STYA pSession
|
>STYA pSession
|
||||||
stx S.Table.hPW
|
stx S.Table.hSession
|
||||||
|
|
||||||
ldy #PwdMgr.ROOT.Size-1
|
ldy #PwdMgr.ROOT.Size-1
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user