A2osX/SYS/KERNEL.S.PFT.txt
2021-07-24 22:42:23 +02:00

159 lines
2.5 KiB
Plaintext
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

NEW
AUTO 3,1
*--------------------------------------
PFT.CheckPath1 ldy #1
.HS 2C BIT ABS
PFT.CheckPath2 ldy #2
.HS 2C BIT ABS
PFT.CheckPath4 ldy #4
lda (pStack),y
pha
iny
lda (pStack),y
ply
PFT.CheckPathYA >PUSHYA
stx .6+1 Save SYSCALL #
>PUSHWI K.Buf256
>SYSCALL2 realpath
bcs PFT.RTS
ldx #0
.1 inx
lda Flt.Table.pftHI-1,x
beq .8
sta ZPPtr1+1
lda Flt.Table.pftLO-1,x
sta ZPPtr1
ldy #$ff
.2 iny
lda (ZPPtr1),y "/FILTER\0"
beq .3 end of filter string....
cmp K.Buf256,y can be \0
beq .2
bra .8
.3 lda K.Buf256,y
beq .4 path is "/FILTER" ?
cmp #'/' path is "/FILTER/..." ?
bne .8
iny
.4 lda Flt.Table.cbLO-1,x
sta .7+1
lda Flt.Table.cbHI-1,x
sta .7+2
stx hHandler
pla discard JSR return @
pla
lda /K.Buf256 pass full path to handler
.6 ldx #$ff SELF MODIFIED SYSCALL #
.7 jmp $ffff SELF MODIFIED
.8 cpx #K.FLT.MAX
bne .1
>LDYAI K.Buf256
*--------------------------------------
PFT.YAToMLIPATH >STYA .1+1
ldx #0 no filter, prodos path
.1 lda $ffff,x SELF MODIFIED
beq .2
inx
sta K.MLI.PATH,x
cpx #MLI.MAXPATH
bne .1
.2 stx K.MLI.PATH
inx
stz K.MLI.PATH,x Make ending 0 for /dev/xxx path
>LDYAI K.MLI.PATH
>STYA K.MLI.PARAMS+1
clc
PFT.RTS rts
*--------------------------------------
PFT.CheckNode4 ldy #4
PFT.CheckNodeY lda (pStack),y
PFT.CheckNodeA stx .80+1 Save SYSCALL #
sta IO.hFILE
tax
beq .9
cpx #K.hFD.MAX+1
bcs .9
lda hFDs-1,x
beq .9
jsr DEV.GetPFD
ldy #S.FD.PFT
lda (pFD),y
beq .8 Handler is 0, back to kernel....
tax
lda Flt.Table.cbLO-1,x
sta .7+1
lda Flt.Table.cbHI-1,x
sta .7+2
stx hHandler
pla discard JSR return @
pla
ldx .80+1 restore SYSCALL #
lda IO.hFILE
.7 jmp $ffff SELF MODIFIED
.8 lda (pFD) #S.FD.T
cmp #S.FD.T.CDEV
bcs .80
ldy #S.FD.REG.REF REG or DIR
lda (pFD),y
sta K.MLI.PARAMS+1
.80 ldx #$ff SELF MODIFIED
.81 lda IO.hFILE
clc
.99 rts
.9 lda #E.INVH
sec
rts
*--------------------------------------
MAN
SAVE usr/src/sys/kernel.s.pft
LOAD usr/src/sys/kernel.s
ASM