Kernel 0.94

This commit is contained in:
Rémy GIBERT 2020-07-10 15:59:56 +02:00
parent 0958a37b76
commit fa5062e4a3
10 changed files with 85 additions and 50 deletions

Binary file not shown.

View File

@ -477,8 +477,9 @@ S.FD.REG .EQ 4
S.FD.DIR.EL .EQ 4
S.FD.DIR.EPB .EQ 5
S.FD.DIR.FC .EQ 6 word
S.FD.DIR.ACL .EQ 8
*
S.FD.DIR .EQ 8
S.FD.DIR .EQ 16
*--------------------------------------
S.FD.DEV.BUSID .EQ 2
S.FD.DEV.DEVID .EQ 3

View File

@ -38,6 +38,7 @@ MLIGETBUF .EQ $D3
MLISETFILEINFOEX .EQ $D4
MLIGETFILEINFOEX .EQ $D5
MLISETACL .EQ $D6
*--------------------------------------
S.FI.A .EQ $03
S.FI.A.R .EQ $01
@ -65,10 +66,12 @@ S.FI.CTIME .EQ $10
S.FI .EQ $12
*--------------------------------------
S.FIEX.FILENAME .EQ 0
S.FIEX.TYPE .EQ 16
S.FIEX.T .EQ 16
S.FIEX.KEYPTR .EQ 17
S.FIEX.BLKUSED .EQ 19
S.FIEX.EOF .EQ 21
S.FIEX.CTIME .EQ 24
S.FIEX.VERSION .EQ 28
S.FIEX.MVERSION .EQ 29
@ -76,7 +79,11 @@ S.FIEX.ACCESS .EQ 30
S.FIEX.AUXTYPE .EQ 31
S.FIEX.MTIME .EQ 33
S.FIEX.BLKPTR .EQ 37
S.FIEX.ACL .EQ 40
S.FIEX.ACL .EQ 40 75.00
S.FIEX.ACL.UID .EQ 42
S.FIEX.ACL.GID .EQ 44
S.FIEX.ACL.MOD .EQ 46
*
S.FIEX .EQ 48
*--------------------------------------

View File

@ -167,9 +167,9 @@ movhead jsr movhed0 move directory info.
jmp lookfil0 do next local pathname.
movhed0 .DO ACL=1
ldx #18
ldx #9+8
.ELSE
ldx #10 move this directory info
ldx #9 move this directory info
.FIN
.1 .DO ACL=1

View File

@ -469,7 +469,7 @@ XDOS.GetFileInfoEx
ldx #7
ldy #S.FIEX.ACL+7+3
.3 lda h_acl,x
sta (A3L),y
dey
@ -560,6 +560,9 @@ XDOS.SetFileInfoEx
.9 rts
*--------------------------------------
XDOS.SetACL clc
rts
*--------------------------------------
XDOS.SetFileInfo
jsr findfile get the file to work on.
bcs L49CF if error.

View File

@ -813,7 +813,7 @@ XDOS.SPParams.B .HS 0000 data buffer
*--------------------------------------
* data tables
*--------------------------------------
XDOS.CmdNums .HS D3D4D500 table of valid mli command numbers.
XDOS.CmdNums .HS D3D4D5D6 table of valid mli command numbers.
.HS 40410000
.HS 808182
.HS 65
@ -821,7 +821,7 @@ XDOS.CmdNums .HS D3D4D500 table of valid mli command numbers.
.HS 00
.HS D0D1D2
XDOS.ParamCnt .HS 020202FF parameter counts for the calls
XDOS.ParamCnt .HS 02020202 parameter counts for the calls
.HS 0201FFFF
.HS 030300
.HS 04
@ -836,7 +836,7 @@ XDOS.CmdFlags .HS A0A1A2
.HS 2C2D
.HS 4E4F
.HS 50515253
.HS 9495
.HS 949596
cmdtable .DA XDOS.Create
.DA XDOS.Destroy
@ -865,6 +865,7 @@ cmdtable .DA XDOS.Create
.DA XDOS.SetFileInfoEx
.DA XDOS.GetFileInfoEx
.DA XDOS.SetACL
dinctbl .HS 0100000200 table to increment directory usage/eof counts
.DO LOWERCASE=1
@ -900,6 +901,7 @@ h_credt .HS 0000 directory creation date
h_attr .HS 00 attributes (protect bit, etc.)
h_entln .HS 00 length of each entry in this directory
h_maxent .HS 00 maximum number of entries per block
*--------------------------------------
h_fcnt .HS 0000 current # of files in this directory
h_bmap .HS 0000 address of first allocation bitmap
h_tblk .HS 0000 total number of blocks on this unit

View File

@ -164,9 +164,44 @@ SHARED.ClrStat ldx #S.STAT-1
lda CORE.FSID
sta K.S.STAT+S.STAT.FSID
rts
SHARED.ClrStat.RTS
rts
*--------------------------------------
FS.Stat bit CORE.FSID
bpl .1
>MLICALL MLIGETFILEINFOEX
bcs SHARED.ClrStat.RTS
>LDYAI K.MLI.PARAMS+3
>STYA ZPPtr3
jmp SHARED.DirEnt2Stat
.1 >MLICALL MLIGETFILEINFO
bcs SHARED.ClrStat.RTS
jsr SHARED.ClrStat
lda K.MLI.PARAMS+S.FI.A
jsr SHARED.Access2Mode
ldx #SHARED.GFI.Cnt
.3 ldy SHARED.GFI.Src-1,x
lda K.MLI.PARAMS,y
ldy SHARED.Stat.Dst-1,x
sta K.S.STAT,y
dex
bne .3
>LDYAI K.MLI.PARAMS+S.FI.CDATE
ldx #K.S.STAT+S.STAT.CTIME
jsr SHARED.PTime2StatYAX
>LDYAI K.MLI.PARAMS+S.FI.MDATE
ldx #K.S.STAT+S.STAT.MTIME
jmp SHARED.PTime2StatYAX
*--------------------------------------
SHARED.DirEnt2Stat
jsr SHARED.ClrStat

View File

@ -111,7 +111,7 @@ K.FStat >PULLW K.Stat.Store.2+1
jsr K.GetMemPtr
jsr PFT.YAToMLIPATH
jsr SHARED.Stat.I
jsr FS.Stat
bcs K.Stat.Store.RTS
lda (pFD) #S.FD.T
@ -160,7 +160,7 @@ K.Stat jsr PFT.CheckPath2
inc pStack
inc pStack
jsr SHARED.Stat.I
jsr FS.Stat
bcc K.Stat.Store
rts
@ -323,42 +323,6 @@ STAT.PullPathAndMode
>PULLW ZPPtr1 pathname
rts
*--------------------------------------
SHARED.Stat.I bit CORE.FSID
bpl .1
>MLICALL MLIGETFILEINFOEX
bcs K.Pipe.RTS
>LDYAI K.MLI.PARAMS+3
>STYA ZPPtr3
jmp SHARED.DirEnt2Stat
.1 >MLICALL MLIGETFILEINFO
bcs K.Pipe.RTS
jsr SHARED.ClrStat
lda K.MLI.PARAMS+S.FI.A
jsr SHARED.Access2Mode
ldx #SHARED.GFI.Cnt
.3 ldy SHARED.GFI.Src-1,x
lda K.MLI.PARAMS,y
ldy SHARED.Stat.Dst-1,x
sta K.S.STAT,y
dex
bne .3
>LDYAI K.MLI.PARAMS+S.FI.CDATE
ldx #K.S.STAT+S.STAT.CTIME
jsr SHARED.PTime2StatYAX
>LDYAI K.MLI.PARAMS+S.FI.MDATE
ldx #K.S.STAT+S.STAT.MTIME
jmp SHARED.PTime2StatYAX
*--------------------------------------
MAN
SAVE usr/src/sys/kernel.s.stat
LOAD usr/src/sys/kernel.s

View File

@ -677,6 +677,7 @@ K.Rename jsr PFT.CheckPath2
* X = hFD
*--------------------------------------
STDIO.NewHFile ldx #1
.1 lda OF.Table.hFD-1,x
beq .2

View File

@ -292,8 +292,30 @@ IO.CLOSE.NOD ldx #2
* `>SYSCALL chown`
* ## RETURN VALUE
*\--------------------------------------
K.ChOwn clc
K.ChOwn jsr PFT.CheckPath2
bcs K.ChOwn.RET4
>MLICALL MLIGETFILEINFOEX
bcs K.ChOwn.RET4
>PULLB K.MLI.PARAMS+3+S.FIEX.ACL.GID
>PULLB K.MLI.PARAMS+3+S.FIEX.ACL.UID
inc pStack
inc pStack
lda K.MLI.PARAMS+3+S.FIEX.T
cmp #S.FI.T.DIR
bne .90
>MLICALL MLISETACL
rts
.90 lda #MLI.E.INVPARAM
sec
rts
K.ChOwn.RET4 >RET 4
*--------------------------------------
SHARED.GetPDrv ldy #S.FD.DEV.DRVPTR
lda (pFD),y