PR#3
PREFIX /A2OSX.SRC
NEW
INC 1
AUTO 6
				.LIST OFF
*--------------------------------------
* K.PFTAdd
*  In : 
*  Out : 
*--------------------------------------
K.PFTAdd		
				clc
				rts
*--------------------------------------
* K.PFTRemove
*  In : 
*  Out : 
*--------------------------------------
K.PFTRemove		
				clc
				rts
*--------------------------------------
* PFT.CheckPath___
*  In : 
*   PULLW/Y,A = PATH (PSTR)
*  Out : 
*--------------------------------------
PFT.CheckPathSTK
				lda (pStack)			read PTR.LO on top of stack
				pha
				ldy #1
				lda (pStack),y			read PTR.HI on top of stack
				ply
PFT.CheckPathYA
				stx S.PFT.SYSCALL		save #SYSCALL
				>STYA ZPQuickPtr1
				
				>LDYAI FltMgr.Table
				>STYA ZPQuickPtr2
				
.1				lda (ZPQuickPtr2)		Get Filter Len
				beq .9					End Of Table, Exit
				tay 
				lda (ZPQuickPtr1),y		is there a "/" at this point in SRC path?
				cmp #'/'
				bne .8
				
.2				lda (ZPQuickPtr1),y	 				
				cmp (ZPQuickPtr2),y	
				bne .8
				dey
				bne .2
				
				ldy #S.PFT.HANDLER
				lda (ZPQuickPtr2),y		get hLib
				jsr K.GetMemPtrA
				>STYA .3+1
				
				lda S.PFT.SYSCALL		getback #SYSCALL
				sec
				sbc #SYS.FOPEN-4		0=Lib.load, 2=Lib.Unload
				tax

				pla						discard JSR return @
				pla
				
				>LDYA ZPQuickPtr1		restore passed params
.3				jmp $ffff
				
				
.8				lda ZPQuickPtr2
				clc
				adc (ZPQuickPtr2)		Add STR len
				adc #S.PFT
				sta ZPQuickPtr2
				bcc .1
				
.9				>LDYA ZPQuickPtr1		restore passed params
				ldx S.PFT.SYSCALL
				rts
*--------------------------------------
* PFT.Check___
*  In : 
*   PULLB/A = hFILE/hDIR
*  Out : 
*--------------------------------------
PFT.CheckFileSTK
				lda (pStack)			read hFILE on top of stack
PFT.CheckFileA		
PFT.CheckDirA	stx S.PFT.SYSCALL		save #SYSCALL
				sta S.PFT.hFILE
				jsr K.GetMemPtrA			X = unmidified
				>STYA ZPQuickPtr1
				lda (ZPQuickPtr1)
				beq .9						Handler is 0, back to kernel....
				
				jsr K.GetMemPtrA
				>STYA .1+1
				
				lda S.PFT.SYSCALL		getback #SYSCALL
				sec
				sbc #SYS.FOPEN-4		0=Lib.load, 2=Lib.Unload
				tax

				pla						discard JSR return @
				pla
				
				lda S.PFT.hFILE			restore passed params
.1				jmp $ffff

				
.9				lda S.PFT.hFILE
				rts
*--------------------------------------
S.PFT.hFILE		.BS 1
S.PFT.SYSCALL	.BS 1
*--------------------------------------
MAN
SAVE SYS/KERNEL.S.PFT
LOAD SYS/KERNEL.S
ASM