mirror of
https://github.com/A2osX/A2osX.git
synced 2024-12-27 02:32:51 +00:00
122 lines
2.4 KiB
Plaintext
122 lines
2.4 KiB
Plaintext
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
|