A2osX/SYS/KERNEL.S.PFT.txt
Rémy GIBERT bae3f91aab 0.9
2017-01-12 18:43:45 +01:00

122 lines
2.4 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.

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 ZPPtr1
>LDYAI FltMgr.Table
>STYA ZPPtr2
.1 lda (ZPPtr2) Get Filter Len
beq .9 End Of Table, Exit
tay
lda (ZPPtr1),y is there a "/" at this point in SRC path?
cmp #'/'
bne .8
.2 lda (ZPPtr1),y
cmp (ZPPtr2),y
bne .8
dey
bne .2
ldy #S.PFT.HANDLER
lda (ZPPtr2),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 ZPPtr1 restore passed params
.3 jmp $ffff
.8 lda ZPPtr2
clc
adc (ZPPtr2) Add STR len
adc #S.PFT
sta ZPPtr2
bcc .1
.9 >LDYA ZPPtr1 restore passed params
ldx S.PFT.SYSCALL
rts
*--------------------------------------
* PFT.Check___
* In :
* PULLB/A = hFILE/hDIR
* Out :
*--------------------------------------
PFT.CheckNodeSTK
lda (pStack) read hFILE on top of stack
PFT.CheckNodeA stx S.PFT.SYSCALL save #SYSCALL
sta S.PFT.hFILE
jsr K.GetMemPtrA X = unmidified
>STYA ZPPtr1
lda (ZPPtr1)
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