Kernel 0.93

This commit is contained in:
Rémy GIBERT 2019-04-29 17:47:17 +02:00
parent 30e70ae0b5
commit 9ec843b36e
11 changed files with 85 additions and 24 deletions

Binary file not shown.

View File

@ -11,6 +11,7 @@ AUTO 4,1
.INB INC/MLI.I .INB INC/MLI.I
.INB INC/MLI.E.I .INB INC/MLI.E.I
*-------------------------------------- *--------------------------------------
X.ENTER.SUBDIR .EQ 0
X.COPY.TO.DEST .EQ 1 X.COPY.TO.DEST .EQ 1
X.DELETE.SOURCE .EQ 0 X.DELETE.SOURCE .EQ 0
*-------------------------------------- *--------------------------------------

View File

@ -11,6 +11,7 @@ AUTO 4,1
.INB INC/MLI.I .INB INC/MLI.I
.INB INC/MLI.E.I .INB INC/MLI.E.I
*-------------------------------------- *--------------------------------------
X.ENTER.SUBDIR .EQ 1
X.COPY.TO.DEST .EQ 0 X.COPY.TO.DEST .EQ 0
X.DELETE.SOURCE .EQ 0 X.DELETE.SOURCE .EQ 0
*-------------------------------------- *--------------------------------------

View File

@ -11,6 +11,7 @@ AUTO 4,1
.INB INC/MLI.I .INB INC/MLI.I
.INB INC/MLI.E.I .INB INC/MLI.E.I
*-------------------------------------- *--------------------------------------
X.ENTER.SUBDIR .EQ 0
X.COPY.TO.DEST .EQ 1 X.COPY.TO.DEST .EQ 1
X.DELETE.SOURCE .EQ 1 X.DELETE.SOURCE .EQ 1
*-------------------------------------- *--------------------------------------

View File

@ -11,6 +11,7 @@ AUTO 4,1
.INB INC/MLI.I .INB INC/MLI.I
.INB INC/MLI.E.I .INB INC/MLI.E.I
*-------------------------------------- *--------------------------------------
X.ENTER.SUBDIR .EQ 0
X.COPY.TO.DEST .EQ 0 X.COPY.TO.DEST .EQ 0
X.DELETE.SOURCE .EQ 1 X.DELETE.SOURCE .EQ 1
*-------------------------------------- *--------------------------------------

View File

@ -43,6 +43,7 @@ CS.START cld
.DA CS.QUIT .DA CS.QUIT
L.MSG.USAGE .DA MSG.USAGE L.MSG.USAGE .DA MSG.USAGE
L.MSG.INV .DA MSG.INV L.MSG.INV .DA MSG.INV
L.CMD.RM .DA CMD.RM
.DA 0 .DA 0
*-------------------------------------- *--------------------------------------
* Called once at process creation * Called once at process creation
@ -73,7 +74,7 @@ CS.RUN >LDYAI S.PW
lda ArgUsername lda ArgUsername
>SYSCALL ArgV >SYSCALL ArgV
>SYSCALL GetPWName >SYSCALL GetPWName
bcs .90 bcs .99
ldy #S.PW.PASSWD ldy #S.PW.PASSWD
lda #0 lda #0
@ -134,9 +135,10 @@ CS.RUN.CheckArg inc ArgIndex
sta (pData),y sta (pData),y
bra CS.RUN.CheckArg bra CS.RUN.CheckArg
.4 ldx ArgUsername .4 lda ArgUsername
bne .9 bne .9
lda ArgIndex
sta ArgUsername sta ArgUsername
bra CS.RUN.CheckArg bra CS.RUN.CheckArg
@ -146,8 +148,35 @@ CS.RUN.CheckArg inc ArgIndex
clc clc
rts rts
*-------------------------------------- *--------------------------------------
CS.RUN.RmDir clc CS.RUN.RmDir >LDA.G bDelete
bmi .1
lda ZPPWPtr
clc
adc #S.PW.DIR
tay
lda ZPPWPtr+1
adc /S.PW.DIR
>SYSCALL remove
rts
.1 >PUSHW L.CMD.RM
>LDYA ZPStrPtr
>SYSCALL strcpy
lda ZPPWPtr
clc
adc #S.PW.DIR
tay
lda ZPPWPtr+1
adc /S.PW.DIR
>LDYA ZPStrPtr
>SYSCALL strcat
>LDYA ZPStrPtr
>SYSCALL execl
rts rts
*-------------------------------------- *--------------------------------------
* Called if option S.PS.F.EVENT enabled in Header * Called if option S.PS.F.EVENT enabled in Header
@ -182,6 +211,7 @@ OptionVars .DA #bDelete,#bDelete
MSG.USAGE .AS "Usage : USERDEL username\r\n" MSG.USAGE .AS "Usage : USERDEL username\r\n"
.AZ " -r : Force remove files in home directory\r\n" .AZ " -r : Force remove files in home directory\r\n"
MSG.INV .AZ "Invalid username.\r\n" MSG.INV .AZ "Invalid username.\r\n"
CMD.RM .AZ "${ROOT}BIN/RM -R -Q "
*-------------------------------------- *--------------------------------------
* Per Process DATA segment * Per Process DATA segment
*-------------------------------------- *--------------------------------------

View File

@ -223,6 +223,10 @@ CS.RUN ldy #S.PS.hStdIn
.3 jsr GetEntry .3 jsr GetEntry
bcs CS.RUN.LEAVE bcs CS.RUN.LEAVE
>LDA.G index
dec
bne .4 in a subdir, match everything
>LDA.G hFilter >LDA.G hFilter
beq .4 No filter.... beq .4 No filter....
@ -370,9 +374,11 @@ CS.RUN.DIR .DO X.COPY.TO.DEST=1
.4 jsr CS.RUN.CheckErr .4 jsr CS.RUN.CheckErr
bcs CS.RUN.DIR.RTS bcs CS.RUN.DIR.RTS
jsr CS.RUN.IncCount
.FIN .FIN
.7 >LDYA ZPFileName >LDYA ZPFileName
jmp EnterSubDirYA jmp EnterSubDirYA
.99 ldy #RC .99 ldy #RC
@ -774,5 +780,5 @@ CS.QUIT.FREE lda (pData),y
*-------------------------------------- *--------------------------------------
MAN MAN
SAVE USR/SRC/BIN/X.CPMVRM.S SAVE USR/SRC/BIN/X.CPMVRM.S
LOAD USR/SRC/BIN/RM.S LOAD USR/SRC/BIN/CP.S
ASM ASM

View File

@ -99,11 +99,14 @@ InitSrcDirYA >SYSCALL RealPath
>SYSCALL Stat >SYSCALL Stat
bcs .1 File/DIR does not exists, go extract pattern bcs .1 File/DIR does not exists, go extract pattern
.DO X.ENTER.SUBDIR=1
>LDA.G STAT+S.STAT.P.TYPE >LDA.G STAT+S.STAT.P.TYPE
cmp #S.FI.T.DIR cmp #S.FI.T.DIR
bne .4 TYPE not a DIR, extract.... bne .4 TYPE not a DIR, extract....
bra .5 TYPE=DIR, do not extract pattern bra .5 TYPE=DIR, do not extract pattern
.ELSE
bra .4
.FIN
.1 ldy #0 TYPE is not DIR, check if wc .1 ldy #0 TYPE is not DIR, check if wc
@ -431,8 +434,7 @@ GetEntry.ReadDir
*-------------------------------------- *--------------------------------------
EnterSubDirYA >STYA ZPPtr2 save SUBDIR for StrCat EnterSubDirYA >STYA ZPPtr2 save SUBDIR for StrCat
ldy #index >LDA.G index
lda (pData),y
cmp #X.MAX.RECURSE cmp #X.MAX.RECURSE
beq .9 beq .9
@ -613,5 +615,5 @@ GetoDIRENT ldy #index
*-------------------------------------- *--------------------------------------
MAN MAN
SAVE USR/SRC/BIN/X.FILEENUM.S SAVE USR/SRC/BIN/X.FILEENUM.S
LOAD USR/SRC/BIN/RM.S LOAD USR/SRC/BIN/CP.S
ASM ASM

View File

@ -23,6 +23,7 @@ ZPbValidUser .BS 1
ZPhGetLine .BS 1 ZPhGetLine .BS 1
ZPGetLinePtr .BS 2 ZPGetLinePtr .BS 2
ZPbGetLineSecret .BS 1 ZPbGetLineSecret .BS 1
ZPbEsc .BS 1
ZPGetLineLen .BS 1 ZPGetLineLen .BS 1
ZPGetLineMax .BS 1 ZPGetLineMax .BS 1
@ -335,10 +336,23 @@ CS.RUN.AddByte sta (ZPStrPtr)
CS.RUN.GetLine sta ZPGetLineMax CS.RUN.GetLine sta ZPGetLineMax
ror ZPbGetLineSecret ror ZPbGetLineSecret
stz ZPGetLineLen stz ZPGetLineLen
stz ZPbEsc
.1 >SYSCALL getchar .1 >SYSCALL getchar
bcs .9 bcs .9
bit ZPbEsc
bpl .11
* clc
ror ZPbEsc
cmp #'D'
bne .1
bra .3
.11 cmp #C.DEL
beq .3
cmp #C.SPACE cmp #C.SPACE
bcc .2 bcc .2
@ -347,8 +361,7 @@ CS.RUN.GetLine sta ZPGetLineMax
beq .1 beq .1
sta (ZPGetLinePtr),y sta (ZPGetLinePtr),y
iny inc ZPGetLineLen
sty ZPGetLineLen
bit ZPbGetLineSecret bit ZPbGetLineSecret
bmi .1 bmi .1
@ -362,10 +375,14 @@ CS.RUN.GetLine sta ZPGetLineMax
cmp #C.CR cmp #C.CR
beq .8 beq .8
cmp #C.BS cmp #C.ESC
bne .1 bne .1
ldy ZPGetLineLen * sec
ror ZPbEsc
bra .1
.3 ldy ZPGetLineLen
beq .1 beq .1
dec ZPGetLineLen dec ZPGetLineLen

View File

@ -1200,10 +1200,10 @@ ETCPASSWD .AZ "${ROOT}ETC/PASSWD"
ETCINIT.CMDLINE .AZ "${ROOT}ETC/INIT" ETCINIT.CMDLINE .AZ "${ROOT}ETC/INIT"
*-------------------------------------- *--------------------------------------
MLIOPEN00 .DA #3 MLIOPEN00 .DA #3
.DA A2OSXCONF .DA .1
.DA $B000 .DA $B000
.BS 1 .BS 1
A2OSXCONF >PSTR "A2osX.KCONFIG" .1 >PSTR "A2osX.KCONFIG"
*-------------------------------------- *--------------------------------------
MLIREAD00 .DA #4 MLIREAD00 .DA #4
.BS 1 .BS 1

View File

@ -118,7 +118,7 @@ PWD.PutPW >LDYA ZPPtr2
>STYA PWD.DBPtr >STYA PWD.DBPtr
stx PWD.hDB stx PWD.hDB
bra .8 jmp .8
.1 jsr K.GetmemPtr .1 jsr K.GetmemPtr
>STYA PWD.DBPtr >STYA PWD.DBPtr
@ -127,7 +127,9 @@ PWD.PutPW >LDYA ZPPtr2
jsr MEM.TXTPTR.GetY jsr MEM.TXTPTR.GetY
bne .12 bne .12
jmp PWD.DeleteRecord jsr PWD.DeleteRecord
bcc .80
rts
.12 jsr PWD.DeleteRecord .12 jsr PWD.DeleteRecord
bcc .11 user exits.. bcc .11 user exits..
@ -183,7 +185,7 @@ PWD.PutPW >LDYA ZPPtr2
.8 jsr PWD.StoreRecord .8 jsr PWD.StoreRecord
inc PWD.bDirty .80 inc PWD.bDirty
clc clc
.99 rts .99 rts
@ -285,15 +287,15 @@ PWD.FindRecord >LDYA PWD.DBPtr
beq .4 beq .4
cmp (ZPPtr3),y cmp (ZPPtr3),y
beq .3 beq .3
bra .5
.4 lda (ZPPtr3),y
beq .8
.5 jsr PWD.NextLine .5 jsr PWD.NextLine
bra .2 bra .2
.8 clc .4 lda (ZPPtr3),y
cmp #':'
bne .5
clc
rts rts
.9 lda #E.IUSR .9 lda #E.IUSR