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 PFTs.pHI-1,x beq .8 sta ZPPtr1+1 lda PFTs.pLO-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 PFTs.cbLO-1,x sta .7+1 lda PFTs.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.PFT.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.FILE.MAX+1 bcs .9 ldy FILEs.hFD-1,x sty IO.hFD lda FDs.pLO-1,y sta pFD lda FDs.pHI-1,y sta pFD+1 beq .9 ldy #S.FD.PFT lda (pFD),y beq .8 Handler is 0, back to kernel.... tax lda PFTs.cbLO-1,x sta .7+1 lda PFTs.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 jsr DEV.GetPDrv 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