Kernel 0.93

This commit is contained in:
Rémy GIBERT 2019-04-25 17:33:56 +02:00
parent 15c88347fe
commit ca88602a61
4 changed files with 81 additions and 93 deletions

Binary file not shown.

View File

@ -26,6 +26,7 @@ ZPStrMax .BS 1
ArgIndex .BS 1 ArgIndex .BS 1
ArgUsername .BS 1 ArgUsername .BS 1
ZPStrPtr .BS 2 ZPStrPtr .BS 2
ZPTmpPtr .BS 2
ZS.END .ED ZS.END .ED
*-------------------------------------- *--------------------------------------
* File Header (16 Bytes) * File Header (16 Bytes)
@ -108,10 +109,13 @@ CS.RUN >LDYAI S.PW
bcs .9 bcs .9
jsr CS.RUN.MkDir jsr CS.RUN.MkDir
bcs .99 * bcs .99
>LDYA pData >LDYA pData
>SYSCALL putpw >SYSCALL putpw
bcs .99
lda #0
sec sec
rts rts
@ -268,16 +272,16 @@ CS.RUN.CheckArg inc ArgIndex
lda pData lda pData
clc clc
adc #S.PW.DIR+11 adc #S.PW.DIR+11
sta ZPPWPtr sta ZPTmpPtr
lda pData+1 lda pData+1
adc /S.PW.DIR+11 adc /S.PW.DIR+11
sta ZPPWPtr+1 sta ZPTmpPtr+1
ldy #0 ldy #0
.5 lda (ZPStrPtr),y .5 lda (ZPStrPtr),y
sta (pData),y sta (pData),y
sta (ZPPWPtr),y sta (ZPTmpPtr),y
beq .6 beq .6
iny iny
cpy #16 cpy #16
@ -285,7 +289,7 @@ CS.RUN.CheckArg inc ArgIndex
bra CS.RUN.CheckArg.9 bra CS.RUN.CheckArg.9
.6 lda #'/' .6 lda #'/'
sta (ZPPWPtr),y sta (ZPTmpPtr),y
>PUSHW ZPPWPtr >PUSHW ZPPWPtr
lda ArgIndex lda ArgIndex
@ -354,22 +358,22 @@ CS.RUN.CheckArg.Next
* clc * clc
txa txa
adc pData adc pData
sta ZPPWPtr sta ZPTmpPtr
lda pData+1 lda pData+1
adc #0 adc #0
sta ZPPWPtr+1 sta ZPTmpPtr+1
ldy #$ff ldy #$ff
.1 iny .1 iny
lda (ZPStrPtr),y lda (ZPStrPtr),y
sta (ZPPWPtr),y sta (ZPTmpPtr),y
beq .8 beq .8
cpy #64 cpy #64
bne .1 bne .1
lda #0 lda #0
sta (ZPPWPtr),y sta (ZPTmpPtr),y
.8 jmp CS.RUN.CheckArg .8 jmp CS.RUN.CheckArg
*-------------------------------------- *--------------------------------------

View File

@ -112,7 +112,22 @@ CORE.Events jsr CORE.GetEvents
bcs .8 bcs .8
sta KBDSTROBE sta KBDSTROBE
jsr CORE.ScrSel and #$0F
tax
lda A2osX.SCRNDEVS,x Get DevID
beq .8 No device claimed this screen
cmp A2osX.ASCREEN Same as active screen...nothing to do
beq .8
pha
>PUSHWI 0 Param
>PUSHBI IOCTL.CONTROL request
pla
jsr K.IOCTL
.8 jmp CORE.Run .8 jmp CORE.Run
*-------------------------------------- *--------------------------------------
CORE.UpdateParentPS CORE.UpdateParentPS
@ -342,22 +357,6 @@ CORE.GetPS.RTS rts
*.2 .AZ "!Evt:F=%b,Dev=$%h,LO=$%h,HI=$%h,W1=$%H,W2=$%H\n" *.2 .AZ "!Evt:F=%b,Dev=$%h,LO=$%h,HI=$%h,W1=$%H,W2=$%H\n"
*-------------------------------------- *--------------------------------------
CORE.ScrSel and #$0F
tax
lda A2osX.SCRNDEVS,x Get DevID
beq CORE.GetPS.RTS No device claimed this screen
cmp A2osX.ASCREEN Same as active screen...nothing to do
beq CORE.GetPS.RTS
pha
>PUSHWI 0 Param
>PUSHBI IOCTL.CONTROL request
pla
jmp K.IOCTL
*--------------------------------------
CORE.DestroyEvent CORE.DestroyEvent
lda (pEvent) lda (pEvent)
beq .9 beq .9

View File

@ -20,35 +20,25 @@ PWD.GetPWUID lda PWD.hDB
>STYA ZPPtr3 >STYA ZPPtr3
.1 lda (ZPPtr3) .1 lda (ZPPtr3)
beq .99 beq .99 EOF
ldy #0 ldy #0
.2 lda (ZPPtr3),y .2 lda (ZPPtr3),y
iny iny
cmp #':' cmp #':'
bne .2 bne .2 skip USERNAME
.3 lda (ZPPtr3),y .3 lda (ZPPtr3),y
iny iny
cmp #':' cmp #':'
bne .3 bne .3 skip PASSWORD
jsr PWD.GetByte jsr PWD.GetByte get UID
cmp ZPPtr1+1 cmp ZPPtr1+1
beq .8 beq .8
.4 iny jsr PWD.NextLine
lda (ZPPtr3),y
cmp #C.CR
bne .4
tya
sec
adc ZPPtr3
sta ZPPtr3
bcc .1
inc ZPPtr3+1
bra .1 bra .1
.8 jmp PWD.Record2PW .8 jmp PWD.Record2PW
@ -86,17 +76,7 @@ PWD.GetPWName lda PWD.hDB
cmp (ZPPtr3),y cmp (ZPPtr3),y
beq .2 beq .2
.3 iny .3 jsr PWD.NextLine
lda (ZPPtr3),y
cmp #C.CR
bne .3
tya
sec
adc ZPPtr3
sta ZPPtr3
bcc .1
inc ZPPtr3+1
bra .1 bra .1
.4 lda (ZPPtr3),y .4 lda (ZPPtr3),y
@ -111,6 +91,7 @@ PWD.GetPWName lda PWD.hDB
.99 lda #E.IUSR .99 lda #E.IUSR
sec sec
PWD.GetPWName.RTS
rts rts
*-------------------------------------- *--------------------------------------
PWD.PutPW >LDYA ZPPtr2 PWD.PutPW >LDYA ZPPtr2
@ -121,16 +102,30 @@ PWD.PutPW >LDYA ZPPtr2
ldy #S.PW.UID ldy #S.PW.UID
jsr MEM.TXTPTR.GetY jsr MEM.TXTPTR.GetY
bne .9 Must be ROOT user bne PWD.GetPWName.RTS Must be ROOT user
jmp PWD.InitDB jsr PWD.GetRecordLen
tay
lda #0
>STYA PWD.DBSize
jsr K.getmem
bcs .99
>STYA ZPPtr3
>STYA PWD.DBPtr
stx PWD.hDB
bra .8
.1 jsr K.GetmemPtr .1 jsr K.GetmemPtr
>STYA PWD.DBPtr >STYA PWD.DBPtr
jsr PWD.DeleteRecord jsr PWD.DeleteRecord
bcc .11 user exits..
jsr PWD.GetRecordLen jsr PWD.SetUID new user, setup UID
.11 jsr PWD.GetRecordLen
clc clc
adc PWD.DBSize adc PWD.DBSize
@ -172,36 +167,24 @@ PWD.PutPW >LDYA ZPPtr2
stx PWD.hDB stx PWD.hDB
jsr K.Freemem jsr K.Freemem
.8 jsr PWD.StoreRecord
jsr PWD.StoreRecord
inc PWD.bDirty inc PWD.bDirty
clc clc
rts .99 rts
.9 lda #E.IPWDDB .9 lda #E.IPWDDB
sec sec
.99 rts rts
*--------------------------------------
PWD.InitDB jsr PWD.GetRecordLen
tay
lda #0
>STYA PWD.DBSize
jsr K.getmem
bcs .9
>STYA ZPPtr3
>STYA PWD.DBPtr
stx PWD.hDB
jsr PWD.StoreRecord
inc PWD.bDirty
clc
.9 rts
*-------------------------------------- *--------------------------------------
* ZPPtr2 = pPW * ZPPtr2 = pPW
*-------------------------------------- *--------------------------------------
PWD.SetUID >LDYA PWD.DBPtr
>STYA ZPPtr3
clc
rts
*--------------------------------------
PWD.DeleteRecord PWD.DeleteRecord
jsr PWD.FindRecord jsr PWD.FindRecord
bcs .9 bcs .9
@ -256,21 +239,10 @@ PWD.FindRecord >LDYA PWD.DBPtr
beq .3 beq .3
bra .5 bra .5
.4 lda (ZPPtr3),y .4 lda (ZPPtr3),y
beq .8 beq .8
.5 iny .5 jsr PWD.NextLine
lda (ZPPtr3),y
cmp #C.CR
bne .5
tya
sec
adc ZPPtr3
sta ZPPtr3
bcc .2
inc ZPPtr3+1
bra .2 bra .2
.8 clc .8 clc
@ -279,6 +251,19 @@ PWD.FindRecord >LDYA PWD.DBPtr
.9 sec .9 sec
rts rts
*-------------------------------------- *--------------------------------------
PWD.NextLine iny
lda (ZPPtr3),y
cmp #C.CR
bne PWD.NextLine
tya
sec
adc ZPPtr3
sta ZPPtr3
bcc .8
inc ZPPtr3+1
.8 rts
*--------------------------------------
PWD.Record2PW sta CLRWRITEAUX PWD.Record2PW sta CLRWRITEAUX
ldy #0 ldy #0