A2osX/SYS/KERNEL.S.PFT.txt

131 lines
2.3 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.CheckPath0 ldy #0
.HS 2C BIT ABS
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.YAToMLIPATH.RTS
ldx #0
.1 lda Flt.Table.hPath,x
beq .8
jsr K.GetMemPtr
>STYA 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 path is "/FILTER/..." ?
cmp #'/'
bne .8
lda Flt.Table.hLib,x get hLib
jsr K.GetMemPtr
>STYA .7+1
pla discard JSR return @
pla
>LDYAI K.Buf256 pass full path to handler
.6 ldx #$ff SELF MODIFIED SYSCALL #
.7 jmp $ffff SELF MODIFIED
.8 inx
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.YAToMLIPATH.RTS
rts
*--------------------------------------
PFT.CheckNode4 ldy #4
.HS 2C BIT ABS
PFT.CheckNode2 ldy #2
lda (pStack),y
PFT.CheckNodeA stx .80+1 Save SYSCALL #
sta .81+1 Save hFILE
jsr DEV.GetPFD
bcs .99
ldy #S.FD.HANDLER
lda (pFD),y
beq .8 Handler is 0, back to kernel....
jsr K.GetMemPtr
>STYA .1+1
pla discard JSR return @
pla
ldx .80+1 restore SYSCALL #
lda .81+1 restore passed hFILE
.1 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 #$ff SELF MODIFIED
clc
.99 rts
*--------------------------------------
MAN
SAVE usr/src/sys/kernel.s.pft
LOAD usr/src/sys/kernel.s
ASM