Kernel 0.93+

This commit is contained in:
Rémy GIBERT 2019-12-02 17:47:53 +01:00
parent f0feab9c03
commit 7ced649025
7 changed files with 112 additions and 94 deletions

Binary file not shown.

View File

@ -440,12 +440,13 @@ K.ReadDir.AddTime
jsr K.ReadDir.ConvertTime
*--------------------------------------
K.ReadDir.AddStat
ldy #S.STAT-1
ldy #0
.1 lda K.S.STAT,y
jsr K.ReadDir.AddToBuf
dey
bpl .1
iny
cpy #S.STAT
bne .1
rts
*--------------------------------------
@ -459,37 +460,47 @@ K.ReadDir.AddFNToBuf
ldy #$1C version/min_version for lowercase bitmap
lda (ZPPtr3),y check bxxxxxxx.xxxxxxxx...
bpl .7 not set, no lowercase bitmap present
pha
iny
lda (ZPPtr3),y
pha
lda #$1
sta .2+1
ldy #15
.1 pla
.2 bit #$ff
pha
beq .3
lda (ZPPtr3),y
ora #$20 convert a-z to A-Z adding from $4x to $6x
sta (ZPPtr3),y
.3 asl .2+1
bne .4
rol .2+1
pla
.4 dey
bne .1
pla
.7 lda (ZPPtr3)
and #$0F get filename len
tax
ldy #1
.8 lda (ZPPtr3),y
jsr K.ReadDir.AddToBuf
iny
dex
bne .8
txa
* jsr K.ReadDir.AddToBuf

View File

@ -205,11 +205,12 @@ ENV.Search.YA >STYA .4+1
iny
inx
bra .4
.5 >PUSHWI K.S.STAT
>LDYAI K.Buf256
ldx #SYS.stat
jsr K.SYSCALL2
>SYSCALL2 stat
bcs .1 Failed...retry next path...
lda K.S.STAT+S.STAT.P.TYPE
cmp #S.FI.T.DIR Dir ?
beq .1

View File

@ -13,6 +13,7 @@ K.SYSCALL .DA 0 $00
.DA K.MKNod
.DA K.MKFIFO
.DA K.Pipe
.DA K.OpenDir $10
.DA K.ReadDir
.DA K.FClose
@ -30,6 +31,7 @@ K.SYSCALL .DA 0 $00
.DA K.PutS
.DA K.FGetS
.DA 0
.DA K.FOpen $30
.DA K.FClose
.DA K.FRead
@ -47,6 +49,7 @@ K.SYSCALL .DA 0 $00
.DA K.GetDevByName
.DA K.GetDevStatus
.DA K.MKDev
.DA 0 $50
.DA K.SScanF
.DA 0
@ -55,6 +58,7 @@ K.SYSCALL .DA 0 $00
.DA K.SPrintF
.DA K.FPrintF
.DA 0
.DA 0 $60
.DA K.ChTyp
.DA 0
@ -110,6 +114,7 @@ K.SYSCALL .DA 0 $00
.DA K.SetEnv
.DA K.GetEnv
.DA K.UnsetEnv
.DA 0 $C0
.DA 0
.DA 0
@ -442,6 +447,7 @@ K.SYSCALL2.MAIN sta CLRREADAUX Coming from KERNEL in AUX...
sta SETWRITEAUX
rts
.1 bit K.SYSCALL.BANK,x Get Target LC BNK
K.SYSCALL2.BANK bpl K.SYSCALL.JMP 0, E000, no BNK change
sta .7+1
lda $D000 #RRAMWRAMBNK1 or #RRAMWRAMBNK2
@ -455,6 +461,7 @@ K.SYSCALL2.BANK bpl K.SYSCALL.JMP 0, E000, no BNK change
bit $C000,x
jsr .6
stx .5+1 Save X
plx get back Source BNK
bit $C000,x switch to Target BNK

View File

@ -215,8 +215,7 @@ PS.Load ldy #$ff
>PUSHWI K.S.STAT
>LDYA PS.ArgV found /, some path specified, no search
ldx #SYS.stat
jsr K.SYSCALL2
>SYSCALL2 stat
bcc .6 REAL path in K.Buf256
.99 rts
@ -284,11 +283,12 @@ PS.Load.SCRIPT ldx #$ff
bne .4
sta K.Buf256-1,x K.Buf256 = "${ROOT}BIN/SHELL\0"
.5 >PUSHWI K.S.STAT
>LDYAI K.Buf256
ldx #SYS.stat
jsr K.SYSCALL2
>SYSCALL2 stat
bcs PS.Load.RTS
lda K.S.STAT+S.STAT.P.TYPE
cmp #S.FI.T.BIN
bne PS.Load.IBIN

View File

@ -155,90 +155,6 @@ SHARED.PullYA sta CLRREADAUX
SHARED.PullYA.RTS
rts
*--------------------------------------
SHARED.Stat jsr PFT.CheckPathYA
bcs SHARED.PullYA.RTS
SHARED.Stat.I jsr SHARED.ClrStat
>MLICALL MLIGETFILEINFO
bcs SHARED.PullYA.RTS
lda K.MLI.PARAMS+S.FI.A
jsr SHARED.Stat.Access2Mode
ldx #SHARED.Stat.DST-SHARED.Stat.SRC
.3 ldy SHARED.Stat.SRC-1,x
lda K.MLI.PARAMS,y
ldy SHARED.Stat.DST-1,x
sta K.S.STAT,y
dex
bne .3
* >PUSHWI K.S.STAT+S.STAT.CTIME
* >LDYAI K.MLI.PARAMS+S.FI.CDATE
* >SYSCALL2 PTime2Time BANK2
* >PUSHWI K.S.STAT+S.STAT.MTIME
* >LDYAI K.MLI.PARAMS+S.FI.MDATE
* >SYSCALL2 PTime2Time BANK2
clc
rts
*--------------------------------------
SHARED.DirEnt2Stat
clc
rts
*--------------------------------------
SHARED.ClrStat ldx #S.STAT-1
.1 stz K.S.STAT,x
dex
bpl .1
rts
*--------------------------------------
SHARED.Stat.Access2Mode
and #S.FI.A.FULL
cmp #S.FI.A.FULL
beq .7
tay
ldx #S.STAT.MODE.RO+S.STAT.MODE.RG+S.STAT.MODE.RU+S.STAT.MODE.XO+S.STAT.MODE.XG+S.STAT.MODE.XU
bit #S.FI.A.W
beq .1
txa
ora #S.STAT.MODE.WO
tax
tya
.1 asl D in C
bpl .2 RN in N
txa
ora #S.STAT.MODE.WG
tax
.2 txa
bcc .8
ora #S.STAT.MODE.WU
.HS 2C BIT ABS
.7 lda #S.STAT.MODE.FO+S.STAT.MODE.FG+S.STAT.MODE.FU rwxrwxrwx
.8 sta K.S.STAT+S.STAT.MODE
lda /S.STAT.MODE.RU ??????R??
ora K.S.STAT+S.STAT.MODE+1 preserve DIR
sta K.S.STAT+S.STAT.MODE+1
rts
*--------------------------------------
SHARED.Stat.SRC .DA #S.FI.T
.DA #S.FI.AUXTYPE,#S.FI.AUXTYPE+1
.DA #S.FI.UBLKS,#S.FI.UBLKS+1
SHARED.Stat.DST .DA #S.STAT.P.TYPE
.DA #S.STAT.P.AUXTYPE,#S.STAT.P.AUXTYPE+1
.DA #S.STAT.BLOCKS,#S.STAT.BLOCKS+1
*--------------------------------------
MAN
SAVE USR/SRC/SYS/KERNEL.S.SHARED
LOAD USR/SRC/SYS/KERNEL.S

View File

@ -280,7 +280,90 @@ K.Pipe sta .1+1 SIZE HI
.FIN
pla
sec
.99 rts
.99
K.Pipe.RTS rts
*--------------------------------------
SHARED.Stat.I jsr SHARED.ClrStat
>MLICALL MLIGETFILEINFO
bcs K.Pipe.RTS
lda K.MLI.PARAMS+S.FI.A
jsr SHARED.Stat.Access2Mode
ldx #SHARED.Stat.DST-SHARED.Stat.SRC
.3 ldy SHARED.Stat.SRC-1,x
lda K.MLI.PARAMS,y
ldy SHARED.Stat.DST-1,x
sta K.S.STAT,y
dex
bne .3
* >PUSHWI K.S.STAT+S.STAT.CTIME
* >LDYAI K.MLI.PARAMS+S.FI.CDATE
* >DEBUG
* >SYSCALL2 PTime2Time BANK2
* >PUSHWI K.S.STAT+S.STAT.MTIME
* >LDYAI K.MLI.PARAMS+S.FI.MDATE
* >SYSCALL2 PTime2Time BANK2
clc
rts
*--------------------------------------
SHARED.DirEnt2Stat
clc
rts
*--------------------------------------
SHARED.ClrStat ldx #S.STAT-1
.1 stz K.S.STAT,x
dex
bpl .1
rts
*--------------------------------------
SHARED.Stat.Access2Mode
and #S.FI.A.FULL
cmp #S.FI.A.FULL
beq .7
tay
ldx #S.STAT.MODE.RO+S.STAT.MODE.RG+S.STAT.MODE.RU+S.STAT.MODE.XO+S.STAT.MODE.XG+S.STAT.MODE.XU
bit #S.FI.A.W
beq .1
txa
ora #S.STAT.MODE.WO
tax
tya
.1 asl D in C
bpl .2 RN in N
txa
ora #S.STAT.MODE.WG
tax
.2 txa
bcc .8
ora #S.STAT.MODE.WU
.HS 2C BIT ABS
.7 lda #S.STAT.MODE.FO+S.STAT.MODE.FG+S.STAT.MODE.FU rwxrwxrwx
.8 sta K.S.STAT+S.STAT.MODE
lda /S.STAT.MODE.RU ??????R??
ora K.S.STAT+S.STAT.MODE+1 preserve DIR
sta K.S.STAT+S.STAT.MODE+1
rts
*--------------------------------------
SHARED.Stat.SRC .DA #S.FI.T
.DA #S.FI.AUXTYPE,#S.FI.AUXTYPE+1
.DA #S.FI.UBLKS,#S.FI.UBLKS+1
SHARED.Stat.DST .DA #S.STAT.P.TYPE
.DA #S.STAT.P.AUXTYPE,#S.STAT.P.AUXTYPE+1
.DA #S.STAT.BLOCKS,#S.STAT.BLOCKS+1
*--------------------------------------
MAN
SAVE USR/SRC/SYS/KERNEL.S.STAT