mirror of https://github.com/A2osX/A2osX.git
Kernel 0.94
This commit is contained in:
parent
698aaca41d
commit
a5096eef4e
Binary file not shown.
|
@ -349,7 +349,7 @@ FONTFILE .AZ "${ROOT}sbin/sysx7"
|
|||
FONTFILEB .AZ "${ROOT}sbin/sysx7b"
|
||||
PIXFILE .AZ "${ROOT}root/guitest/marilyn"
|
||||
*LOGOFILE .AZ "${ROOT}A2osX.logo"
|
||||
LOGOFILE .AZ "${ROOT}root/BMP/A2osX.logo"
|
||||
LOGOFILE .AZ "${ROOT}root/BMP/A2OSX.LOGO"
|
||||
PALETTEFILE .AZ "${ROOT}root/BMP/PALETTE"
|
||||
MESSAGEB .AZ " DHGR Driver & OSD 'Off-Screen Driver' Test (SYSX7B Font, Inverse) "
|
||||
MESSAGE .AZ " 1234567890 abcdefghijklmnopqrstuvwxyz { + - * / } (SYSX7 Font, Normal) "
|
||||
|
|
|
@ -5,21 +5,20 @@ NEW
|
|||
.OR $2000
|
||||
.TF bin/userdel
|
||||
*--------------------------------------
|
||||
.INB INC/MACROS.I
|
||||
.INB INC/A2OSX.I
|
||||
.INB inc/macros.i
|
||||
.INB inc/a2osx.i
|
||||
*--------------------------------------
|
||||
* Zero Page Segment, up to 32 bytes
|
||||
*--------------------------------------
|
||||
.DUMMY
|
||||
.OR ZPBIN
|
||||
ZS.START
|
||||
ZPhPW .BS 1
|
||||
ZPPWPtr .BS 2
|
||||
ZPhStr .BS 1
|
||||
ZPStrPtr .BS 2
|
||||
ArgIndex .BS 1
|
||||
ArgUsername .BS 1
|
||||
bDelete .BS 1
|
||||
ZPhStr .BS 1
|
||||
ZPStrPtr .BS 2
|
||||
ZPTmpPtr .BS 2
|
||||
ZS.END .ED
|
||||
*--------------------------------------
|
||||
* File Header (16 Bytes)
|
||||
|
@ -51,32 +50,32 @@ L.CMD.RM .DA CMD.RM
|
|||
* Put code for loading LIB here
|
||||
*--------------------------------------
|
||||
CS.INIT clc
|
||||
rts
|
||||
CS.INIT.RTS rts
|
||||
*--------------------------------------
|
||||
* Called until exit with CS
|
||||
* if RUN exits with CC, RN entered again
|
||||
*--------------------------------------
|
||||
CS.RUN >LDYAI S.PW
|
||||
CS.RUN >LDYAI 256
|
||||
>SYSCALL GetMem
|
||||
bcs .99
|
||||
>STYA ZPPWPtr
|
||||
stx ZPhPW
|
||||
>LDYAI 256
|
||||
>SYSCALL GetMem
|
||||
bcs .99
|
||||
bcs CS.INIT.RTS
|
||||
|
||||
>STYA ZPStrPtr
|
||||
stx ZPhStr
|
||||
jsr CS.RUN.CheckArg
|
||||
bcs .99
|
||||
>PUSHW ZPPWPtr
|
||||
|
||||
lda ArgUsername
|
||||
>SYSCALL ArgV
|
||||
>PUSHYA
|
||||
>PUSHW pData
|
||||
>SYSCALL GetPWName
|
||||
bcs .99
|
||||
|
||||
ldy #S.PW.PASSWD
|
||||
lda #0
|
||||
sta (ZPPWPtr),y
|
||||
>LDYA ZPPWPtr
|
||||
sta (pData),y
|
||||
|
||||
>PUSHW pData
|
||||
>SYSCALL putpw
|
||||
bcs .99
|
||||
|
||||
|
@ -87,8 +86,8 @@ CS.RUN >LDYAI S.PW
|
|||
sec
|
||||
rts
|
||||
|
||||
.9 >PUSHBI 0
|
||||
>LDYA L.MSG.INV
|
||||
.9 >PUSHW L.MSG.INV
|
||||
>PUSHBI 0
|
||||
>SYSCALL PrintF
|
||||
lda #E.IUSR
|
||||
sec
|
||||
|
@ -102,13 +101,14 @@ CS.RUN.CheckArg inc ArgIndex
|
|||
lda ArgIndex
|
||||
>SYSCALL ArgV
|
||||
bcs .8
|
||||
>STYA ZPStrPtr
|
||||
lda (ZPStrPtr)
|
||||
|
||||
>STYA ZPTmpPtr
|
||||
lda (ZPTmpPtr)
|
||||
cmp #'-'
|
||||
bne .4
|
||||
|
||||
ldy #1
|
||||
lda (ZPStrPtr),y
|
||||
lda (ZPTmpPtr),y
|
||||
|
||||
ldx #OptionVars-OptionList-1
|
||||
|
||||
|
@ -118,8 +118,8 @@ CS.RUN.CheckArg inc ArgIndex
|
|||
dex
|
||||
bpl .2
|
||||
|
||||
.9 >PUSHBI 0
|
||||
>LDYA L.MSG.USAGE
|
||||
.9 >PUSHW L.MSG.USAGE
|
||||
>PUSHBI 0
|
||||
>SYSCALL PrintF
|
||||
lda #E.SYN
|
||||
sec
|
||||
|
@ -146,27 +146,29 @@ CS.RUN.CheckArg inc ArgIndex
|
|||
CS.RUN.RmDir lda bDelete
|
||||
bmi .1
|
||||
|
||||
lda ZPPWPtr
|
||||
lda pData
|
||||
clc
|
||||
adc #S.PW.DIR
|
||||
tay
|
||||
lda ZPPWPtr+1
|
||||
lda pData+1
|
||||
adc /S.PW.DIR
|
||||
>SYSCALL remove
|
||||
rts
|
||||
|
||||
.1 >PUSHW L.CMD.RM
|
||||
|
||||
>LDYA ZPStrPtr
|
||||
>SYSCALL strcpy
|
||||
lda ZPPWPtr
|
||||
|
||||
lda pData
|
||||
clc
|
||||
adc #S.PW.DIR
|
||||
tay
|
||||
lda ZPPWPtr+1
|
||||
lda pData+1
|
||||
adc /S.PW.DIR
|
||||
>PUSHYA
|
||||
>LDYA ZPStrPtr
|
||||
>SYSCALL strcat
|
||||
|
||||
>PUSHW ZPStrPtr
|
||||
>PUSHBI S.PS.F.HOLD
|
||||
>SYSCALL execl
|
||||
|
@ -184,9 +186,7 @@ CS.DOEVENT sec
|
|||
CS.QUIT lda ZPhStr
|
||||
beq .8
|
||||
>SYSCALL FreeMem
|
||||
.1 lda ZPhPW
|
||||
beq .8
|
||||
>SYSCALL FreeMem
|
||||
|
||||
.8 clc
|
||||
rts
|
||||
*--------------------------------------
|
||||
|
@ -206,9 +206,9 @@ CMD.RM .AZ "${ROOT}BIN/RM -R -Q "
|
|||
*--------------------------------------
|
||||
.DUMMY
|
||||
.OR 0
|
||||
DS.START
|
||||
DS.START .BS S.PW
|
||||
DS.END .ED
|
||||
*--------------------------------------
|
||||
MAN
|
||||
SAVE USR/SRC/BIN/USERDEL.S
|
||||
SAVE usr/src/bin/userdel.s
|
||||
ASM
|
||||
|
|
|
@ -129,7 +129,8 @@ CS.RUN.AUTH lda #3
|
|||
|
||||
>SYSCALL MD5
|
||||
|
||||
jmp CS.RUN.EXEC
|
||||
jsr CS.RUN.EXEC
|
||||
bcc .9
|
||||
|
||||
>LDYA L.MSG.BAD
|
||||
>SYSCALL PutS
|
||||
|
@ -196,7 +197,7 @@ CS.RUN.EXEC >PUSHEA.G Username
|
|||
lda ZPOldSession
|
||||
sta (pPS),y
|
||||
|
||||
sec
|
||||
clc
|
||||
.9 rts
|
||||
*--------------------------------------
|
||||
CS.RUN.GetLine >STYA ZPGetLinePtr
|
||||
|
|
|
@ -26,6 +26,21 @@ K.GetGRGID >PULLW FORPNT
|
|||
|
||||
jmp K.SYSCALL.JMPX
|
||||
*/--------------------------------------
|
||||
* # OpenSession
|
||||
* ## C
|
||||
* `short int hSID opensession(const char *name, const char *passwd);`
|
||||
* ## ASM
|
||||
* `>PUSHW name`
|
||||
* `>PUSHW passwd`
|
||||
* `>SYSCALL OpenSession`
|
||||
* ## RETURN VALUE
|
||||
*\--------------------------------------
|
||||
K.OpenSession
|
||||
* >PULLW FORPNT passwd
|
||||
* >PULLW TXTPTR name
|
||||
|
||||
* jmp K.SYSCALL.JMPX
|
||||
*/--------------------------------------
|
||||
* # GetPWName
|
||||
* ## C
|
||||
* `int getpwname(const char* name, S.PW *passwd);`
|
||||
|
@ -53,27 +68,53 @@ K.GetGRName >PULLW FORPNT
|
|||
*/--------------------------------------
|
||||
* # PutPW
|
||||
* ## C
|
||||
* `int putpw( S.PW* passwd );`
|
||||
* `int putpw(S.PW* passwd);`
|
||||
* ## ASM
|
||||
* `>PUSHW passwd`
|
||||
* `>SYSCALL putpw`
|
||||
* ## RETURN VALUE
|
||||
*\--------------------------------------
|
||||
K.PutPW >PULLW TXTPTR
|
||||
K.PutPW
|
||||
*/--------------------------------------
|
||||
* # PutGR
|
||||
* ## C
|
||||
* `int putgr(S.GRP *group);`
|
||||
* ## ASM
|
||||
* `>PUSHW group`
|
||||
* `>SYSCALL putgr`
|
||||
* ## RETURN VALUE
|
||||
*\--------------------------------------
|
||||
K.PutGR >PULLW TXTPTR
|
||||
|
||||
jsr K.SYSCALL.JMPX
|
||||
bcc K.FlushEtcPasswd
|
||||
bcc PWD.FlushFiles
|
||||
rts
|
||||
*--------------------------------------
|
||||
K.FlushEtcPasswd
|
||||
PWD.FlushFiles
|
||||
>LDYA PWD.UsrDBSize
|
||||
ldx PWD.hUsrDB
|
||||
jsr MEM.CopyToMain
|
||||
clc
|
||||
jsr PWD.Flush
|
||||
|
||||
>LDYA PWD.GrpDBSize
|
||||
ldx PWD.hGrpDB
|
||||
sec
|
||||
|
||||
PWD.Flush >STYA PWD.FileSize
|
||||
>LDYAI PWD.ETCPASSWD
|
||||
bcc .10
|
||||
|
||||
>LDYAI PWD.ETCGROUP
|
||||
|
||||
.10 >STYA PWD.FileName
|
||||
|
||||
>LDYA PWD.FileSize
|
||||
jsr MEM.CopyToMain X = src Aux hMem
|
||||
bcs .9
|
||||
|
||||
stx .8+1
|
||||
|
||||
>PUSHWI PWD.ETCPASSWD
|
||||
>PUSHW PWD.FileName
|
||||
>PUSHBI O.WRONLY+O.CREATE
|
||||
>PUSHBI S.FI.T.TXT
|
||||
>PUSHWZ Aux type
|
||||
|
@ -88,7 +129,7 @@ K.FlushEtcPasswd
|
|||
|
||||
.1 sta .7+1
|
||||
|
||||
>PUSHW PWD.UsrDBSize
|
||||
>PUSHW PWD.FileSize
|
||||
lda .8+1
|
||||
jsr K.getmemptr
|
||||
>PUSHYA
|
||||
|
@ -109,36 +150,6 @@ K.FlushEtcPasswd
|
|||
.8 lda #$ff
|
||||
jmp K.freemem SELF MODIFIED
|
||||
*/--------------------------------------
|
||||
* # PutGR
|
||||
* ## C
|
||||
* `int putgr(S.GRP *group);`
|
||||
* ## ASM
|
||||
* `>PUSHW group`
|
||||
* `>SYSCALL putgr`
|
||||
* ## RETURN VALUE
|
||||
*\--------------------------------------
|
||||
K.PutGR >PULLW TXTPTR
|
||||
|
||||
jsr K.SYSCALL.JMPX
|
||||
bcc K.FlushEtcGroup
|
||||
rts
|
||||
*--------------------------------------
|
||||
K.FlushEtcGroup rts
|
||||
*/--------------------------------------
|
||||
* # OpenSession
|
||||
* ## C
|
||||
* `short int hSID opensession(const char *name, const char *passwd);`
|
||||
* ## ASM
|
||||
* `>PUSHW name`
|
||||
* `>PUSHW passwd`
|
||||
* `>SYSCALL OpenSession`
|
||||
* ## RETURN VALUE
|
||||
*\--------------------------------------
|
||||
K.OpenSession >PULLW FORPNT passwd
|
||||
>PULLW TXTPTR name
|
||||
|
||||
jmp K.SYSCALL.JMPX
|
||||
*/--------------------------------------
|
||||
* # CloseSession
|
||||
* ## C
|
||||
* `int closesession(short int hSID);`
|
||||
|
@ -156,6 +167,8 @@ PWD.UsrDBSize .BS 2
|
|||
PWD.ETCGROUP .AZ "${ROOT}etc/group"
|
||||
PWD.hGrpDB .BS 1
|
||||
PWD.GrpDBSize .BS 2
|
||||
PWD.FileSize .BS 2
|
||||
PWD.FileName .BS 2
|
||||
*--------------------------------------
|
||||
MAN
|
||||
SAVE usr/src/sys/kernel.s.pwd
|
||||
|
|
|
@ -85,7 +85,7 @@ PWDX.GetPWName lda PWD.hUsrDB
|
|||
* ZPPtr3 : pDB
|
||||
*--------------------------------------
|
||||
PWDX.PutPW lda PWD.hUsrDB
|
||||
bne .1
|
||||
bne PWDX.PutPW.1
|
||||
|
||||
ldy #S.PW.UID
|
||||
jsr SHARED.TXTPTR.GetY
|
||||
|
@ -107,10 +107,30 @@ PWDX.PutPW lda PWD.hUsrDB
|
|||
|
||||
jsr PWD.AppendRecord
|
||||
|
||||
lda PWD.hGrpDB
|
||||
beq .2
|
||||
|
||||
jsr K.freemem
|
||||
|
||||
.2 >LDYAI PWDX.GROUP.Size
|
||||
>STYA PWD.GrpDBSize
|
||||
jsr K.getmem
|
||||
bcs .9
|
||||
|
||||
>STYA ZPPtr3
|
||||
stx PWD.hGrpDB
|
||||
|
||||
ldy #PWD.GrpDBSize-1
|
||||
|
||||
.3 lda PWDX.GROUP,y
|
||||
sta (ZPPtr3),y
|
||||
dey
|
||||
bpl .3
|
||||
|
||||
clc
|
||||
rts
|
||||
.9 rts
|
||||
*--------------------------------------
|
||||
.1 jsr K.GetmemPtr
|
||||
PWDX.PutPW.1 jsr K.GetmemPtr
|
||||
>STYA ZPPtr3
|
||||
|
||||
ldy #S.PW.PASSWD
|
||||
|
@ -651,6 +671,13 @@ PWDX.ROOT .DA #S.SESSION.P.ROOT
|
|||
.AZ "${ROOT}bin/sh" SHELL
|
||||
PWDX.ROOT.Size .EQ *-PWDX.ROOT
|
||||
*--------------------------------------
|
||||
PWDX.GROUP .AS "root:0"
|
||||
.DA #C.CR
|
||||
.AS "users:1"
|
||||
.DA #C.CR
|
||||
.DA #0
|
||||
PWDX.GROUP.Size .EQ *-PWDX.GROUP
|
||||
*--------------------------------------
|
||||
MAN
|
||||
SAVE USR/SRC/SYS/KERNEL.S.PWDX
|
||||
LOAD USR/SRC/SYS/KERNEL.S
|
||||
|
|
Loading…
Reference in New Issue