mirror of https://github.com/A2osX/A2osX.git
Kernel 0.93++
This commit is contained in:
parent
5fa8b09663
commit
0f42912755
Binary file not shown.
|
@ -59,10 +59,13 @@ CS.RUN >LDYA L.MSG0
|
|||
>PUSHW L.MSG1 format
|
||||
>PUSHB SessionID 1 byte SID
|
||||
|
||||
>PUSHB (ZPSessionPtr) 1 byte PRIVILEGE
|
||||
|
||||
ldy #S.SESSION.UID
|
||||
>PUSHB (ZPSessionPtr),y 1 byte UID
|
||||
|
||||
>PUSHB (ZPSessionPtr) 1 byte PRIVILEGE
|
||||
iny #S.SESSION.UID
|
||||
>PUSHB (ZPSessionPtr),y 1 byte GID
|
||||
|
||||
lda ZPSessionPtr
|
||||
clc
|
||||
|
@ -78,7 +81,7 @@ CS.RUN >LDYA L.MSG0
|
|||
jsr CS.RUN.GETIO
|
||||
>PUSHYA 2 bytes DEV
|
||||
|
||||
>PUSHBI 7 total = 7 ... bytes
|
||||
>PUSHBI 8 total = 8 ... bytes
|
||||
|
||||
>SYSCALL printf2
|
||||
bcs .9
|
||||
|
@ -119,8 +122,8 @@ CS.QUIT clc
|
|||
rts
|
||||
*--------------------------------------
|
||||
CS.END
|
||||
MSG0 .AZ "SID UID Privileges Name Dev"
|
||||
MSG1 .AZ "%3d %3d %b %16s %s\r\n"
|
||||
MSG0 .AZ "SID Privilege UID GID Name Dev"
|
||||
MSG1 .AZ "%3d %b %3d %3d %16s %s\r\n"
|
||||
*--------------------------------------
|
||||
.DUMMY
|
||||
.OR 0
|
||||
|
|
|
@ -31,7 +31,6 @@ CORE.PSCount .EQ $D1
|
|||
pPs .EQ $D2
|
||||
pEvent .EQ $D4
|
||||
*--------------------------------------
|
||||
pSession .EQ $D6
|
||||
pCode .EQ $D8
|
||||
pData .EQ $DA
|
||||
pStack .EQ $DC
|
||||
|
@ -39,7 +38,7 @@ pLocal .EQ $DE 10 Bytes
|
|||
|
||||
ZPBIN .EQ $E0 32 bytes
|
||||
ZPBIN.SIZE .EQ 32
|
||||
PSCTX.SIZE .EQ $100-pSession
|
||||
PSCTX.SIZE .EQ $100-pCode
|
||||
*--------------------------------------
|
||||
* A2osX GLOBAL PAGE
|
||||
* $BC00->$BC0F : Public Vetors
|
||||
|
@ -539,13 +538,12 @@ S.PS.PC .EQ 21 WORD
|
|||
|
||||
S.PS.hSID .EQ 23
|
||||
|
||||
S.PS.ZP.SESSION .EQ 24
|
||||
S.PS.ZP.CODE .EQ 26
|
||||
S.PS.ZP.DATA .EQ 28
|
||||
S.PS.ZP.STACK .EQ 30
|
||||
S.PS.ZP.LOCAL .EQ 32
|
||||
S.PS.ZP.CODE .EQ 24
|
||||
S.PS.ZP.DATA .EQ 26
|
||||
S.PS.ZP.STACK .EQ 28
|
||||
S.PS.ZP.LOCAL .EQ 30
|
||||
*
|
||||
S.PS .EQ 66
|
||||
S.PS .EQ 64
|
||||
*--------------------------------------
|
||||
* LIB Function Indexes
|
||||
*--------------------------------------
|
||||
|
|
|
@ -65,7 +65,6 @@ L.MSG.PASSWORD .DA MSG.PASSWORD
|
|||
L.MSG.BAD .DA MSG.BAD
|
||||
L.MSG.CRLF .DA MSG.CRLF
|
||||
L.MSG.BS .DA MSG.BS
|
||||
L.SESSION.ROOT .DA SESSION.ROOT
|
||||
L.ETCISSUE .DA ETCISSUE
|
||||
L.ETCMOTD .DA ETCMOTD
|
||||
L.SHELL .DA SHELL
|
||||
|
@ -88,13 +87,13 @@ CS.RUN >LDYAI 33 Enough for HASH
|
|||
* lda #0 ROOT user
|
||||
>SYSCALL GetPWUID
|
||||
bcc CS.RUN.AUTH
|
||||
*--------------------------------------
|
||||
CS.RUN.NOAUTH >LDYA L.MSG.NOAUTH
|
||||
|
||||
>LDYA L.MSG.NOAUTH
|
||||
jsr CS.RUN.StrOut
|
||||
bcs .9
|
||||
|
||||
jsr CS.RUN.SetRootSession
|
||||
bcs .9
|
||||
|
||||
lda #1
|
||||
sta ZPhSID
|
||||
|
||||
jmp CS.RUN.EXEC
|
||||
.9 rts
|
||||
|
@ -149,23 +148,6 @@ CS.RUN.AUTH lda #3
|
|||
sec
|
||||
.9 rts
|
||||
*--------------------------------------
|
||||
CS.RUN.SetRootSession
|
||||
>LDYA L.SESSION.ROOT
|
||||
>STYA ZPStrPtr
|
||||
|
||||
>LDYAI SESSION.ROOT.Size
|
||||
>SYSCALL getmem
|
||||
bcs .9
|
||||
>STYA pSession
|
||||
stx ZPhSID
|
||||
ldy #SESSION.ROOT.Size-1
|
||||
.1 lda (ZPStrPtr),y
|
||||
sta (pSession),y
|
||||
dey
|
||||
bpl .1
|
||||
* clc
|
||||
.9 rts
|
||||
*--------------------------------------
|
||||
CS.RUN.SetUserSession
|
||||
ldx #S.SESSION.NAME P+UID+GID
|
||||
ldy #S.PW.NAME-1
|
||||
|
@ -186,9 +168,8 @@ CS.RUN.SetUserSession
|
|||
lda #0
|
||||
>SYSCALL getmem
|
||||
bcs .9
|
||||
>STYA pSession
|
||||
>STYA ZPStrPtr
|
||||
|
||||
>STYA ZPStrPtr
|
||||
stx ZPhSID
|
||||
|
||||
* clc
|
||||
|
@ -260,29 +241,33 @@ CS.RUN.CHECKPWD rol ZPbValidUser
|
|||
|
||||
CS.RUN.CHECK.9 rts
|
||||
*--------------------------------------
|
||||
CS.RUN.EXEC ldx #1
|
||||
CS.RUN.EXEC
|
||||
* ldx #1
|
||||
|
||||
.1 lda S.Table.hSession-1,x
|
||||
beq .2
|
||||
*.1 lda S.Table.hSession-1,x
|
||||
* beq .2
|
||||
|
||||
inx
|
||||
cpx #K.USR.MAX+1
|
||||
bne .1
|
||||
* inx
|
||||
* cpx #K.USR.MAX+1
|
||||
* bne .1
|
||||
|
||||
lda #E.OOH
|
||||
* sec
|
||||
rts
|
||||
* lda #E.OOH
|
||||
** sec
|
||||
* rts
|
||||
|
||||
*.2 stx ZPUsrID
|
||||
* txa
|
||||
* ldy #S.PS.hSID
|
||||
* sta (pPS),y
|
||||
|
||||
* lda ZPhSID
|
||||
* ldx ZPUsrID
|
||||
* sta S.Table.hSession-1,x
|
||||
|
||||
* ldy #S.PS.hStdIn
|
||||
* lda (pPS),y
|
||||
* sta S.Table.hFILE-1,x
|
||||
|
||||
.2 stx ZPUsrID
|
||||
txa
|
||||
ldy #S.PS.hSID
|
||||
sta (pPS),y
|
||||
lda ZPhSID
|
||||
ldx ZPUsrID
|
||||
sta S.Table.hSession-1,x
|
||||
ldy #S.PS.hStdIn
|
||||
lda (pPS),y
|
||||
sta S.Table.hFILE-1,x
|
||||
>LDYA L.ETCMOTD
|
||||
jsr CS.RUN.DumpFile
|
||||
jsr CS.CLEANUP
|
||||
|
@ -293,11 +278,11 @@ CS.RUN.EXEC ldx #1
|
|||
bcs .9
|
||||
|
||||
>SLEEP
|
||||
ldx ZPUsrID
|
||||
lda S.Table.hSession-1,x
|
||||
stz S.Table.hSession-1,x
|
||||
stz S.Table.hFILE-1,x
|
||||
>SYSCALL freemem
|
||||
* ldx ZPUsrID
|
||||
* lda S.Table.hSession-1,x
|
||||
* stz S.Table.hSession-1,x
|
||||
* stz S.Table.hFILE-1,x
|
||||
* >SYSCALL freemem
|
||||
|
||||
sec
|
||||
.9 rts
|
||||
|
@ -472,15 +457,6 @@ MSG.BS .DA #C.BS,#C.SPACE,#C.BS,#0
|
|||
ETCISSUE .AZ "${ROOT}etc/issue"
|
||||
ETCMOTD .AZ "${ROOT}etc/motd"
|
||||
SHELL .AZ "${SHELL}"
|
||||
*--------------------------------------
|
||||
SESSION.ROOT .DA #S.SESSION.P.ROOT
|
||||
.DA #0 UID
|
||||
.DA #0 GID
|
||||
.AZ "root" NAME
|
||||
.AZ "Root User" GECOS
|
||||
.AZ "${ROOT}root/" DIR
|
||||
.AZ "${ROOT}bin/sh" SHELL
|
||||
SESSION.ROOT.Size .EQ *-SESSION.ROOT
|
||||
*--------------------------------------
|
||||
.DUMMY
|
||||
.OR 0
|
||||
|
|
|
@ -318,20 +318,21 @@ CORE.DestroyEvent
|
|||
dec CORE.EvtCount
|
||||
.9 rts
|
||||
*--------------------------------------
|
||||
CORE.PSSelect ldy #S.PS.ZP.SESSION+PSCTX.SIZE-1
|
||||
CORE.PSSelect ldy #S.PS.ZP.CODE+PSCTX.SIZE-1
|
||||
ldx #PSCTX.SIZE-1
|
||||
|
||||
.1 lda (pPs),y
|
||||
sta pSession,x
|
||||
sta pCode,x
|
||||
dey
|
||||
dex
|
||||
bpl .1
|
||||
|
||||
rts
|
||||
*--------------------------------------
|
||||
CORE.PSLeave ldy #S.PS.ZP.SESSION+PSCTX.SIZE-1
|
||||
ldx #PSCTX.SIZE-1
|
||||
.1 lda pSession,x
|
||||
CORE.PSLeave ldx #PSCTX.SIZE-1
|
||||
ldy #S.PS.ZP.CODE+PSCTX.SIZE-1
|
||||
|
||||
.1 lda pCode,x
|
||||
sta (pPs),y
|
||||
dey
|
||||
dex
|
||||
|
|
|
@ -225,35 +225,27 @@ ENV.StrVars .AZ "LOGNAME"
|
|||
.AZ "GECOS"
|
||||
.AZ "HOME"
|
||||
.AZ "SHELL"
|
||||
.AZ "PWD"
|
||||
.AZ "UID"
|
||||
.AZ "GID"
|
||||
.AZ "PWD"
|
||||
.DA #0
|
||||
*--------------------------------------
|
||||
ENV.StrVarsJmp .DA ENV.StrVarsSession
|
||||
.DA ENV.StrVarsSession
|
||||
.DA ENV.StrVarsSession
|
||||
.DA ENV.StrVarsSession
|
||||
.DA ENV.StrVarsPWD
|
||||
.DA ENV.StrVarsUID
|
||||
.DA ENV.StrVarsGID
|
||||
.DA ENV.StrVarsPWD
|
||||
*--------------------------------------
|
||||
ENV.StrVarsPWD ldy #S.PS.hCWD
|
||||
lda (pPS),y
|
||||
jsr K.GetMemPtr
|
||||
jmp ENV.AddYAToBuf
|
||||
*--------------------------------------
|
||||
ENV.StrVarsUID ldy #S.SESSION.UID
|
||||
.HS 2C
|
||||
ENV.StrVarsGID ldy #S.SESSION.GID
|
||||
lda (pSession),y
|
||||
jmp ENV.SysVarsNum
|
||||
ENV.StrVarsSession
|
||||
lda pSession
|
||||
jsr ENV.GetSession
|
||||
|
||||
lda ZPPtr3
|
||||
clc
|
||||
adc #S.SESSION.NAME
|
||||
sta ZPPtr3
|
||||
lda pSession+1
|
||||
lda ZPPtr3+1
|
||||
adc /S.SESSION.NAME
|
||||
sta ZPPtr3+1
|
||||
|
||||
|
@ -269,6 +261,29 @@ ENV.StrVarsSession
|
|||
jsr ENV.NextEnvP3Y
|
||||
bra .1
|
||||
*--------------------------------------
|
||||
ENV.StrVarsUID ldx #S.SESSION.UID
|
||||
.HS 2C
|
||||
ENV.StrVarsGID ldx #S.SESSION.GID
|
||||
|
||||
jsr ENV.GetSession
|
||||
txa
|
||||
tay
|
||||
lda (ZPPtr3),y
|
||||
jmp ENV.SysVarsNum
|
||||
*--------------------------------------
|
||||
ENV.StrVarsPWD ldy #S.PS.hCWD
|
||||
lda (pPS),y
|
||||
jsr K.GetMemPtr
|
||||
jmp ENV.AddYAToBuf
|
||||
*--------------------------------------
|
||||
ENV.GetSession ldy #S.PS.hSID
|
||||
lda (pPS),y
|
||||
tay
|
||||
lda S.Table.hSession-1,y
|
||||
jsr K.GetMemPtr
|
||||
>STYA ZPPtr3
|
||||
rts
|
||||
*--------------------------------------
|
||||
ENV.AddYAToBuf >STYA ZPPtr3
|
||||
*--------------------------------------
|
||||
ENV.AddP3ToBuf ldx ENV.BufLen
|
||||
|
|
|
@ -1051,25 +1051,23 @@ PwdMgrInit >LDYAI MSG.PWD
|
|||
*--------------------------------------
|
||||
.1 >LDYAI PwdMgr.ROOT.Size
|
||||
jsr K.Getmem
|
||||
>STYA pSession
|
||||
>STYA ZPPtr1
|
||||
stx S.Table.hSession
|
||||
phy
|
||||
ldy #S.PS.ZP.SESSION+1
|
||||
sta (pPS),y
|
||||
dey
|
||||
pla
|
||||
sta (pPS),y
|
||||
lda #1
|
||||
ldy #S.PS.hSID
|
||||
sta (pPS),y
|
||||
ldy #PwdMgr.ROOT.Size-1
|
||||
.2 lda PwdMgr.ROOT,y
|
||||
sta (pSession),y
|
||||
dey
|
||||
bpl .2
|
||||
|
||||
ldy #S.PS.hStdIn
|
||||
lda (pPS),y
|
||||
sta S.Table.hFile
|
||||
|
||||
lda #1
|
||||
ldy #S.PS.hSID
|
||||
sta (pPS),y
|
||||
|
||||
ldy #PwdMgr.ROOT.Size-1
|
||||
.2 lda PwdMgr.ROOT,y
|
||||
sta (ZPPtr1),y
|
||||
dey
|
||||
bpl .2
|
||||
|
||||
rts
|
||||
*--------------------------------------
|
||||
* Modified CHARGET/CHARGOT for ROM CALL
|
||||
|
|
|
@ -169,17 +169,11 @@ PS.CreateChild ldx #0
|
|||
ldy #S.PS.hSID
|
||||
lda (ZPPtr1),y
|
||||
sta (PS.NewPSPtr),y
|
||||
|
||||
tax
|
||||
lda S.Table.hSession-1,x
|
||||
jsr K.GetMemPtr
|
||||
phy
|
||||
ldy #S.PS.ZP.SESSION+1
|
||||
sta (PS.NewPSPtr),y
|
||||
dey
|
||||
pla
|
||||
sta (PS.NewPSPtr),y
|
||||
|
||||
jsr Mem.IncRefCnt
|
||||
jsr MEM.GetMemByID
|
||||
jsr MEM.IncRefCnt
|
||||
|
||||
lda #S.PS.F.HOLD
|
||||
bit PS.Flags
|
||||
|
|
Loading…
Reference in New Issue