Kernel 0.94

This commit is contained in:
Rémy GIBERT 2020-07-09 17:13:30 +02:00
parent 698aaca41d
commit a5096eef4e
6 changed files with 118 additions and 77 deletions

Binary file not shown.

View File

@ -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) "

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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